From 4c1f2399af75e7a3cce8abafd06a9f824f12cd37 Mon Sep 17 00:00:00 2001 From: pm <362371171@qq.com> Date: Wed, 19 Feb 2025 21:37:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9BC=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BluePrints/BP_PixStreamActor.uasset | Bin 65562 -> 72580 bytes .../UEDMPlugin/Private/ActorUEJSComponent.cpp | 16 +- .../Source/UEDMPlugin/Private/DMScenario.cpp | 296 ++++++++++++------ .../Source/UEDMPlugin/Private/DMScenario.h | 8 +- .../Source/UEDMPlugin/Private/UEDMPlugin.cpp | 10 + .../Private/UEJSBlueprintFunctionLibrary.cpp | 2 +- .../UEDMPlugin/Public/ActorUEJSComponent.h | 6 +- 7 files changed, 232 insertions(+), 106 deletions(-) diff --git a/FlightSimulation/Content/BluePrints/BP_PixStreamActor.uasset b/FlightSimulation/Content/BluePrints/BP_PixStreamActor.uasset index 46e108cb56fc08927b1357f8b96b48a23d420329..afb6449ae1180a9dd8ee639dec933c1dad2ede6d 100644 GIT binary patch delta 14496 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 H>*D?k6c*Sq delta 11218 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 diff --git a/FlightSimulation/Plugins/UEDMPlugin/Source/UEDMPlugin/Private/ActorUEJSComponent.cpp b/FlightSimulation/Plugins/UEDMPlugin/Source/UEDMPlugin/Private/ActorUEJSComponent.cpp index 5be0098..e12ccef 100644 --- a/FlightSimulation/Plugins/UEDMPlugin/Source/UEDMPlugin/Private/ActorUEJSComponent.cpp +++ b/FlightSimulation/Plugins/UEDMPlugin/Source/UEDMPlugin/Private/ActorUEJSComponent.cpp @@ -38,7 +38,11 @@ bool UActorUEJSComponent::JsMessageDispatch(const FString& message) OnJsMessageCallbackDelegate.Broadcast(result); } }); - return Scenario->Load(); + + const FString rwbs = jsonObject->GetStringField(TEXT("rwbs")); + const FString rq = jsonObject->GetStringField(TEXT("rq")); + const FString bc = jsonObject->GetStringField(TEXT("bc")); + return Scenario->LoadMissionData(rwbs, rq, bc); } else if (TEXT("LoadScenarioTask") == func) { @@ -52,7 +56,11 @@ bool UActorUEJSComponent::JsMessageDispatch(const FString& message) }); const FString year = jsonObject->GetStringField(TEXT("year")); - return Scenario->LoadRWBS(TCHAR_TO_UTF8(*year)); + if (year.IsEmpty()) + { + return false; + } + return Scenario->LoadRWBS(year); } else if (TEXT("SelectScenarioTask") == func) { auto Scenario = TDMScenario::Create(); @@ -65,6 +73,10 @@ bool UActorUEJSComponent::JsMessageDispatch(const FString& message) }); const FString task = jsonObject->GetStringField(TEXT("task")); + if (task.IsEmpty()) + { + return false; + } return Scenario->LoadBCSJ(task); } diff --git a/FlightSimulation/Plugins/UEDMPlugin/Source/UEDMPlugin/Private/DMScenario.cpp b/FlightSimulation/Plugins/UEDMPlugin/Source/UEDMPlugin/Private/DMScenario.cpp index eb263f7..06c4b21 100644 --- a/FlightSimulation/Plugins/UEDMPlugin/Source/UEDMPlugin/Private/DMScenario.cpp +++ b/FlightSimulation/Plugins/UEDMPlugin/Source/UEDMPlugin/Private/DMScenario.cpp @@ -12,11 +12,29 @@ #include "DMRunnable.h" #include "UEDMPlugin.h" -struct SQLData +struct BCData { int64 timestamp; int32 bc; - std::string yxr; + FString yxr; + int32 count; + FString jx; +}; + +struct HKBData +{ + FString bdid; + FString jx; //型号 + FString jh; //机号 + FString qc_dh; //编号 + FString zy; //阵营 + FString dwjc; //单位简称 + FString dwdm; //单位代码 + FString fxsj_ly; //数据来源 + FString hc_dm; //后舱代号 + FString hc_xm; //后舱姓名 + FString txbg_sk; //体系摧毁时刻 + FString rwlx; //执行任务 }; FString GBKToUTF8(const char* gbkStr) @@ -26,19 +44,19 @@ FString GBKToUTF8(const char* gbkStr) { return FString("Error in MultiByteToWideChar"); } - + std::vector wideStr(wideLen); MultiByteToWideChar(CP_ACP, 0, gbkStr, -1, wideStr.data(), wideLen); - + int utf8Len = WideCharToMultiByte(CP_UTF8, 0, wideStr.data(), -1, nullptr, 0, nullptr, nullptr); if (utf8Len == 0) { return FString("Error in WideCharToMultiByte"); } - + std::vector utf8Str(utf8Len); WideCharToMultiByte(CP_UTF8, 0, wideStr.data(), -1, utf8Str.data(), utf8Len, nullptr, nullptr); - + FString result = FString(UTF8_TO_TCHAR(utf8Str.data())); return result; } @@ -46,44 +64,46 @@ FString GBKToUTF8(const char* gbkStr) std::string UTF8ToGBK(const FString& str) { std::string utf8Str(TCHAR_TO_UTF8(*str)); - + int wideLen = MultiByteToWideChar(CP_UTF8, 0, utf8Str.c_str(), -1, nullptr, 0); if (wideLen == 0) { return "Error in MultiByteToWideChar"; } - + std::vector wideStr(wideLen); MultiByteToWideChar(CP_UTF8, 0, utf8Str.c_str(), -1, wideStr.data(), wideLen); - + int gbkLen = WideCharToMultiByte(CP_ACP, 0, wideStr.data(), -1, nullptr, 0, nullptr, nullptr); if (gbkLen == 0) { return "Error in WideCharToMultiByte"; } - + std::vector gbkStr(gbkLen); WideCharToMultiByte(CP_ACP, 0, wideStr.data(), -1, gbkStr.data(), gbkLen, nullptr, nullptr); - + return std::string(gbkStr.begin(), gbkStr.end()); } -TSharedPtr ConvertSQLDataToJson(const SQLData& data) +TSharedPtr ConvertSQLDataToJson(const BCData& data) { TSharedPtr JsonObject = MakeShareable(new FJsonObject()); JsonObject->SetNumberField("timestamp", data.timestamp); JsonObject->SetNumberField("bc", data.bc); - JsonObject->SetStringField("yxr", FString(data.yxr.c_str())); + JsonObject->SetStringField("yxr", data.yxr); + JsonObject->SetNumberField("count", data.count); + JsonObject->SetStringField("jx", data.jx); return JsonObject; } -FString ConvertSQLDataVectorToJson(const FString& response, const std::vector& dataVector) +FString ConvertSQLDataVectorToJson(const FString& response, const std::vector& dataVector) { TArray> JsonArray; - for (const SQLData& data : dataVector) + for (const BCData& data : dataVector) { TSharedPtr JsonObject = ConvertSQLDataToJson(data); JsonArray.Add(MakeShareable(new FJsonValueObject(JsonObject))); @@ -100,8 +120,6 @@ FString ConvertSQLDataVectorToJson(const FString& response, const std::vector& dataVector) { TArray> JsonArray; @@ -122,6 +140,51 @@ FString ConvertRWBSVectorToJson(const FString& response, const std::vector& dataVector) +{ + TArray> JsonArray; + + for (const HKBData& data : dataVector) + { + TSharedPtr JsonObject = MakeShareable(new FJsonObject()); + + JsonObject->SetStringField(TEXT("BDID"), data.bdid); + JsonObject->SetStringField(TEXT("型号"), data.jx); + JsonObject->SetStringField(TEXT("机号"), data.jh); + JsonObject->SetStringField(TEXT("编号"), data.qc_dh); + JsonObject->SetStringField(TEXT("阵营"), data.zy); + JsonObject->SetStringField(TEXT("单位简称"), data.dwjc); + JsonObject->SetStringField(TEXT("单位代码"), data.dwdm); + JsonObject->SetStringField(TEXT("数据来源"), data.fxsj_ly); + JsonObject->SetStringField(TEXT("后舱代号"), data.hc_dm); + JsonObject->SetStringField(TEXT("后舱姓名"), data.hc_xm); + JsonObject->SetStringField(TEXT("体系摧毁时刻"), data.txbg_sk); + JsonObject->SetStringField(TEXT("执行任务"), data.rwlx); + + FString leftString; + FString rightString; + bool is = data.txbg_sk.Split(" ", &leftString, &rightString); + if (is) + { + JsonObject->SetStringField(TEXT("体系摧毁文本信息"), rightString); + } + + JsonObject->SetStringField(TEXT("体系摧毁文本颜色"), FColor(255, 0, 0, 255).ToString()); + + JsonArray.Add(MakeShareable(new FJsonValueObject(JsonObject))); + } + + TSharedPtr RootObject = MakeShareable(new FJsonObject()); + RootObject->SetArrayField("data", JsonArray); + RootObject->SetStringField("type", response); + + FString JsonString; + TSharedRef> Writer = TJsonWriterFactory::Create(&JsonString); + FJsonSerializer::Serialize(RootObject.ToSharedRef(), Writer); + + return JsonString; +} + TDMScenario::TDMScenario() { } @@ -136,11 +199,10 @@ TSharedPtr TDMScenario::Create() return self; } -bool TDMScenario::LoadRWBS(const std::string& year) +bool TDMScenario::LoadRWBS(const FString& year) { - std::string sSQL = "select distinct RWBS from kzdk.rw_jbqk where to_char(ksrq, 'yyyy') = '" + year + "'"; - - UE_LOG(LogUEDMPlugin, Log, TEXT("SQL=%s"), UTF8_TO_TCHAR(sSQL.c_str())); + FString query = FString::Format(TEXT("select distinct RWBS from kzdk.rw_jbqk where to_char(ksrq, 'yyyy') ='{0}';"), { year }); + std::string sSQL = UTF8ToGBK(query); TSharedPtr sqlCommand = MakeShareable(new FSQLCommand); sqlCommand->Type = ESQLType::SELECT; @@ -184,14 +246,15 @@ bool TDMScenario::LoadRWBS(const std::string& year) } dmRunnable->ExcuteSQL(sqlCommand); return true; - } bool TDMScenario::LoadBCSJ(const FString& rwbs) { - FString query = FString::Format(TEXT("select RQ, BC, YXR from kzdk.RW_BCSJ where RWBS = '{0}' order by rq, bc asc;"), - { rwbs }); - std::string sSQL = UTF8ToGBK(query) ; + FString query = FString::Format(TEXT("select a.RQ,a.BC,a.YXR, " + "(select count(b.bdid) from kzdk.rw_fxjc b where b.rwbs = '{0}' and b.rq = a.rq and b.bc = a.bc), " + "(select LISTAGG(distinct c.jx, ',') from kzdk.rw_fxjc c where c.rwbs = '{0}' and c.rq = a.rq and c.bc = a.bc) " + "from kzdk.RW_BCSJ a where a.RWBS = '{0}' order by a.rq, a.bc asc; "), { rwbs }); + std::string sSQL = UTF8ToGBK(query); TSharedPtr sqlCommand = MakeShareable(new FSQLCommand); sqlCommand->Type = ESQLType::SELECT; @@ -201,91 +264,45 @@ bool TDMScenario::LoadBCSJ(const FString& rwbs) sdint8 out_c1 = 0; sdint4 out_c2 = 0; sdbyte out_c3[20] = { 0 }; + sdint4 out_c4 = 0; + sdbyte out_c5[128] = { 0 }; slength out_c1_ind = 0; slength out_c2_ind = 0; slength out_c3_ind = 0; + slength out_c4_ind = 0; + slength out_c5_ind = 0; dpi_bind_col(content, 1, DSQL_C_TIMESTAMP, &out_c1, sizeof(out_c1), &out_c1_ind); dpi_bind_col(content, 2, DSQL_C_SLONG, &out_c2, sizeof(out_c2), &out_c2_ind); dpi_bind_col(content, 3, DSQL_C_NCHAR, &out_c3, sizeof(out_c3), &out_c3_ind); + dpi_bind_col(content, 4, DSQL_C_SLONG, &out_c4, sizeof(out_c4), &out_c4_ind); + dpi_bind_col(content, 5, DSQL_C_NCHAR, &out_c5, sizeof(out_c5), &out_c5_ind); ulength row_num = 0; - std::vector tables; + std::vector tables; while (dpi_fetch(content, &row_num) != DSQL_NO_DATA) { - tables.push_back({ out_c1, out_c2, (char*)out_c3 }); + tables.push_back({ out_c1, out_c2, GBKToUTF8((const char*)out_c3), out_c4, GBKToUTF8((const char*)out_c5) }); UE_LOG(LogUEDMPlugin, Log, TEXT("RQ=%llu, BC=%d YXR=%s"), out_c1, out_c2, UTF8_TO_TCHAR((char*)out_c3)); } - TSharedPtr Result = MakeShareable(new SelectResult(std::move(tables))); - return Result; - }; - - TSharedPtr self = AsShared(); - sqlCommand->OnQueryCompleted.BindLambda([self](TSharedPtr Result) - { - if (!Result) - { - UE_LOG(LogUEDMPlugin, Error, TEXT("TDMScenario::LoadBCSJ failed, Result is nullptr")); - } - SelectResult* sqlData = static_cast*>(Result.Get()); - if (!sqlData->succes) - { - UE_LOG(LogUEDMPlugin, Error, TEXT("TDMScenario::LoadBCSJ failed")); - return; - } - - FString jsonString = ConvertSQLDataVectorToJson(TEXT("SelectScenarioTaskResponse"), sqlData->table); - bool success = self->OnQueryCompleted.ExecuteIfBound(jsonString); - UE_LOG(LogUEDMPlugin, Error, TEXT("TDMScenario::Query OnQueryCompleted.ExecuteIfBound %d"), success); - }); - - auto dmRunnable = FUEDMPluginModule::GetDMRunnable(); - if (nullptr == dmRunnable) - { - UE_LOG(LogUEDMPlugin, Error, TEXT("TDMScenario::Query dm runnable is nullptr")); - } - dmRunnable->ExcuteSQL(sqlCommand); - return true; -} - -bool TDMScenario::Load() -{ - TSharedPtr sqlCommand = MakeShareable(new FSQLCommand); - sqlCommand->Type = ESQLType::SELECT; - sqlCommand->SQL = "select RQ,BC,YXR from kzdk.RW_BCSJ order by rq ,bc asc;"; - sqlCommand->select = [](void* content) - { - sdint8 out_c1 = 0; - sdint4 out_c2 = 0; - sdbyte out_c3[20] = { 0 }; - slength out_c1_ind = 0; - slength out_c2_ind = 0; - slength out_c3_ind = 0; - dpi_bind_col(content, 1, DSQL_C_TIMESTAMP, &out_c1, sizeof(out_c1), &out_c1_ind); - dpi_bind_col(content, 2, DSQL_C_SLONG, &out_c2, sizeof(out_c2), &out_c2_ind); - dpi_bind_col(content, 3, DSQL_C_NCHAR, &out_c3, sizeof(out_c3), &out_c3_ind); - ulength row_num = 0; - - std::vector tables; - while (dpi_fetch(content, &row_num) != DSQL_NO_DATA) - { - tables.push_back({ out_c1, out_c2, (char*)out_c3 }); - UE_LOG(LogUEDMPlugin, Log, TEXT("RQ=%llu, BC=%d YXR=%s"), out_c1, out_c2, UTF8_TO_TCHAR((char*)out_c3)); - } - TSharedPtr Result = MakeShareable(new SelectResult(std::move(tables))); + TSharedPtr Result = MakeShareable(new SelectResult(std::move(tables))); return Result; }; TSharedPtr self = AsShared(); sqlCommand->OnQueryCompleted.BindLambda([self](TSharedPtr Result) { - SelectResult* sqlData = static_cast*>(Result.Get()); + if (!Result) + { + UE_LOG(LogUEDMPlugin, Error, TEXT("TDMScenario::LoadBCSJ failed, Result is nullptr")); + } + SelectResult* sqlData = static_cast*>(Result.Get()); if (!sqlData->succes) { - UE_LOG(LogUEDMPlugin, Error, TEXT("TDMScenario::Load failed")); + UE_LOG(LogUEDMPlugin, Error, TEXT("TDMScenario::LoadBCSJ failed")); return; } - FString jsonString = ConvertSQLDataVectorToJson(TEXT("LoadScenarioResponse"), sqlData->table); + FString jsonString = ConvertSQLDataVectorToJson(TEXT("SelectScenarioTaskResponse"), sqlData->table); bool success = self->OnQueryCompleted.ExecuteIfBound(jsonString); UE_LOG(LogUEDMPlugin, Error, TEXT("TDMScenario::Query OnQueryCompleted.ExecuteIfBound %d"), success); }); @@ -299,7 +316,7 @@ bool TDMScenario::Load() return true; } -void TDMScenario::LoadMissionData(const FString& rwbs, const FString& rq, const FString& bc) +bool TDMScenario::LoadMissionData(const FString& rwbs, const FString& rq, const FString& bc) { UE_LOG(LogUEDMPlugin, Log, TEXT("LoadMissionData Begin")); @@ -308,20 +325,111 @@ void TDMScenario::LoadMissionData(const FString& rwbs, const FString& rq, const LoadDMMBData(rwbs, rq, bc); UE_LOG(LogUEDMPlugin, Log, TEXT("LoadMissionData End")); + + return true; } void TDMScenario::LoadHKBData(const FString& rwbs, const FString& rq, const FString& bc) { - std::string sSQL = "select bdid, jx, jh, qc_dh, zy, dwjc, dwdm, fxsj_ly, hc_dm, hc_xm, txbg_sk, RWLX from kzdk.RW_FXJC where RWBS = " + - std::string(TCHAR_TO_UTF8(*rwbs)) + " and RQ = to_date('" + - std::string(TCHAR_TO_UTF8(*rq)) + "', 'yyyy-mm-dd') and BC = " + std::string(TCHAR_TO_UTF8(*bc)); + FString query = FString::Format(TEXT("select bdid, jx, jh, qc_dh, zy, dwjc, dwdm, fxsj_ly, hc_dm, hc_xm, txbg_sk, RWLX from kzdk.RW_FXJC" + " where RWBS = '{0}' and RQ = to_date('{1}', 'yyyy-mm-dd') and BC = {2};"), { rwbs, rq, bc }); + std::string sSQL = UTF8ToGBK(query); + + TSharedPtr sqlCommand = MakeShareable(new FSQLCommand); + sqlCommand->Type = ESQLType::SELECT; + sqlCommand->SQL = sSQL; + sqlCommand->select = [](void* content) + { + sdbyte out_c1[40] = { 0 }; + sdbyte out_c2[30] = { 0 }; + sdbyte out_c3[50] = { 0 }; + sdbyte out_c4[20] = { 0 }; + sdbyte out_c5[200] = { 0 }; + sdbyte out_c6[200] = { 0 }; + sdbyte out_c7[200] = { 0 }; + sdbyte out_c8[20] = { 0 }; + sdbyte out_c9[20] = { 0 }; + sdbyte out_c10[30] = { 0 }; + dpi_timestamp_t out_c11; + sdbyte out_c12[20] = { 0 }; + slength out_c1_ind = 0; + slength out_c2_ind = 0; + slength out_c3_ind = 0; + slength out_c4_ind = 0; + slength out_c5_ind = 0; + slength out_c6_ind = 0; + slength out_c7_ind = 0; + slength out_c8_ind = 0; + slength out_c9_ind = 0; + slength out_c10_ind = 0; + slength out_c11_ind = 0; + slength out_c12_ind = 0; + dpi_bind_col(content, 1, DSQL_C_NCHAR, &out_c1, sizeof(out_c1), &out_c1_ind); + dpi_bind_col(content, 2, DSQL_C_NCHAR, &out_c2, sizeof(out_c2), &out_c2_ind); + dpi_bind_col(content, 3, DSQL_C_NCHAR, &out_c3, sizeof(out_c3), &out_c3_ind); + dpi_bind_col(content, 4, DSQL_C_NCHAR, &out_c4, sizeof(out_c4), &out_c4_ind); + dpi_bind_col(content, 5, DSQL_C_NCHAR, &out_c5, sizeof(out_c5), &out_c5_ind); + dpi_bind_col(content, 6, DSQL_C_NCHAR, &out_c6, sizeof(out_c6), &out_c6_ind); + dpi_bind_col(content, 7, DSQL_C_NCHAR, &out_c7, sizeof(out_c7), &out_c7_ind); + dpi_bind_col(content, 8, DSQL_C_NCHAR, &out_c8, sizeof(out_c8), &out_c8_ind); + dpi_bind_col(content, 9, DSQL_C_NCHAR, &out_c9, sizeof(out_c9), &out_c9_ind); + dpi_bind_col(content, 10, DSQL_C_NCHAR, &out_c10, sizeof(out_c10), &out_c10_ind); + dpi_bind_col(content, 11, DSQL_C_TIMESTAMP, &out_c11, sizeof(out_c11), &out_c11_ind); + dpi_bind_col(content, 12, DSQL_C_NCHAR, &out_c12, sizeof(out_c12), &out_c12_ind); + ulength row_num = 0; + + std::vector tables; + while (dpi_fetch(content, &row_num) != DSQL_NO_DATA) + { + + FString st = FString::Format(TEXT("{0}-{1}-{2} {3}:{4}:{5}"), { out_c11.year, out_c11.month, out_c11.day, out_c11.hour, out_c11.minute, out_c11.second }); + + tables.push_back({ GBKToUTF8((char*)out_c1), GBKToUTF8((char*)out_c2), GBKToUTF8((char*)out_c3), GBKToUTF8((char*)out_c4), + GBKToUTF8((char*)out_c5), GBKToUTF8((char*)out_c6), GBKToUTF8((char*)out_c7), GBKToUTF8((char*)out_c8), + GBKToUTF8((char*)out_c9), GBKToUTF8((char*)out_c10), st, GBKToUTF8((char*)out_c12) }); + UE_LOG(LogUEDMPlugin, Log, TEXT("RQ=%llu, BC=%d YXR=%s"), out_c1, out_c2, UTF8_TO_TCHAR((char*)out_c3)); + } + TSharedPtr Result = MakeShareable(new SelectResult(std::move(tables))); + return Result; + }; + + TSharedPtr self = AsShared(); + sqlCommand->OnQueryCompleted.BindLambda([self](TSharedPtr Result) + { + SelectResult* sqlData = static_cast*>(Result.Get()); + if (!sqlData->succes) + { + UE_LOG(LogUEDMPlugin, Error, TEXT("TDMScenario::Query failed")); + return; + } + + FString jsonString = ConvertHKBDataVectorToJson(TEXT("HKB-Base"), sqlData->table); + bool success = self->OnLoadCompleted.ExecuteIfBound(jsonString); + UE_LOG(LogUEDMPlugin, Error, TEXT("TDMScenario::Query OnLoadCompleted.ExecuteIfBound %d"), success); + }); + + auto dmRunnable = FUEDMPluginModule::GetDMRunnable(); + if (nullptr == dmRunnable) + { + UE_LOG(LogUEDMPlugin, Error, TEXT("TDMScenario::Query dm runnable is nullptr")); + } + dmRunnable->ExcuteSQL(sqlCommand); } bool TDMScenario::LoadKkwqsyList(const FString& bdid, const FString& qrxg, const FString& qcdh, const FString& zy) { - std::string sSQL = "select dx, fsbh, GJ_JL, GJ_FW, gj_sk, GJTS, DMZYSK, ZD_JSSK, gjxg_qrmb, dx, MZYXX, FS_JH from kzdk.rw_fxjc_wqsy where sjlx = '空空' and gjxg_qrxg = " + - std::string(TCHAR_TO_UTF8(*qrxg)) + " and bdid = " + - std::string(TCHAR_TO_UTF8(*bdid)); + //FString query = FString::Format(TEXT("select bdid, jx, jh, qc_dh, zy, dwjc, dwdm, fxsj_ly, hc_dm, hc_xm, txbg_sk, RWLX from kzdk.RW_FXJC" + // " where RWBS = '{0}' and RQ = to_date('{1}', 'yyyy-mm-dd') and BC = {2};"), { rwbs, rq, bc }); + //std::string sSQL = UTF8ToGBK(query); + + //TSharedPtr sqlCommand = MakeShareable(new FSQLCommand); + //sqlCommand->Type = ESQLType::SELECT; + //sqlCommand->SQL = sSQL; + //sqlCommand->select = [](void* content) + + // std::string sSQL = "select dx, fsbh, GJ_JL, GJ_FW, gj_sk, GJTS, DMZYSK, ZD_JSSK, gjxg_qrmb, dx, MZYXX, FS_JH from kzdk.rw_fxjc_wqsy where sjlx = '空空' and gjxg_qrxg = " + + // std::string(TCHAR_TO_UTF8(*qrxg)) + " and bdid = " + + // std::string(TCHAR_TO_UTF8(*bdid)); return true; } diff --git a/FlightSimulation/Plugins/UEDMPlugin/Source/UEDMPlugin/Private/DMScenario.h b/FlightSimulation/Plugins/UEDMPlugin/Source/UEDMPlugin/Private/DMScenario.h index e4390a8..7a2918c 100644 --- a/FlightSimulation/Plugins/UEDMPlugin/Source/UEDMPlugin/Private/DMScenario.h +++ b/FlightSimulation/Plugins/UEDMPlugin/Source/UEDMPlugin/Private/DMScenario.h @@ -3,9 +3,9 @@ #pragma once #include "CoreMinimal.h" -#include DECLARE_DELEGATE_OneParam(FOnSQLCompleted, FString); +DECLARE_DELEGATE_OneParam(FOnLoadCompleted, FString); /** * @@ -19,17 +19,16 @@ public: static TSharedPtr Create(); // 加载任务标识 - bool LoadRWBS(const std::string& year); + bool LoadRWBS(const FString& year); // 加载波次 bool LoadBCSJ(const FString& rwbs); - bool Load(); // 加载任务数据 //rwbs:任务标识 //rq:日期 //bc:波次 - void LoadMissionData(const FString& rwbs, const FString& rq, const FString& bc); + bool LoadMissionData(const FString& rwbs, const FString& rq, const FString& bc); // 加载航空兵数据 void LoadHKBData(const FString& rwbs, const FString& rq, const FString& bc); @@ -49,4 +48,5 @@ public: public: FOnSQLCompleted OnQueryCompleted; + FOnLoadCompleted OnLoadCompleted; }; diff --git a/FlightSimulation/Plugins/UEDMPlugin/Source/UEDMPlugin/Private/UEDMPlugin.cpp b/FlightSimulation/Plugins/UEDMPlugin/Source/UEDMPlugin/Private/UEDMPlugin.cpp index 65d939a..ab45412 100644 --- a/FlightSimulation/Plugins/UEDMPlugin/Source/UEDMPlugin/Private/UEDMPlugin.cpp +++ b/FlightSimulation/Plugins/UEDMPlugin/Source/UEDMPlugin/Private/UEDMPlugin.cpp @@ -8,6 +8,8 @@ #include "DMRunnable.h" #include "DPI.h" +#include "DMScenario.h" + #define LOCTEXT_NAMESPACE "FUEDMPluginModule" DEFINE_LOG_CATEGORY(LogUEDMPlugin); @@ -18,6 +20,14 @@ void FUEDMPluginModule::StartupModule() { // This code will execute after your module is loaded into memory; the exact timing is specified in the .uplugin file per-module dmRunnable_ = new FDMRunnable(); + + //auto Scenario = TDMScenario::Create(); + //Scenario->OnQueryCompleted.BindLambda([this](const FString& result) + // { + + // }); + + //Scenario->LoadRWBS("2019"); } void FUEDMPluginModule::ShutdownModule() diff --git a/FlightSimulation/Plugins/UEDMPlugin/Source/UEDMPlugin/Private/UEJSBlueprintFunctionLibrary.cpp b/FlightSimulation/Plugins/UEDMPlugin/Source/UEDMPlugin/Private/UEJSBlueprintFunctionLibrary.cpp index 74a872e..ca51b17 100644 --- a/FlightSimulation/Plugins/UEDMPlugin/Source/UEDMPlugin/Private/UEJSBlueprintFunctionLibrary.cpp +++ b/FlightSimulation/Plugins/UEDMPlugin/Source/UEDMPlugin/Private/UEJSBlueprintFunctionLibrary.cpp @@ -21,7 +21,7 @@ bool UUEJSBlueprintFunctionLibrary::JsMessageDispatch(const FString& message) if (TEXT("LoadTask") == func) { auto Scenario = TDMScenario::Create(); - Scenario->Load(); + //Scenario->Load(); } return true; diff --git a/FlightSimulation/Plugins/UEDMPlugin/Source/UEDMPlugin/Public/ActorUEJSComponent.h b/FlightSimulation/Plugins/UEDMPlugin/Source/UEDMPlugin/Public/ActorUEJSComponent.h index f1799da..9f9e972 100644 --- a/FlightSimulation/Plugins/UEDMPlugin/Source/UEDMPlugin/Public/ActorUEJSComponent.h +++ b/FlightSimulation/Plugins/UEDMPlugin/Source/UEDMPlugin/Public/ActorUEJSComponent.h @@ -26,15 +26,11 @@ public: UPROPERTY(BlueprintAssignable) FJsMessageCallbackDelegate OnJsMessageCallbackDelegate; - - protected: // Called when the game starts virtual void BeginPlay() override; public: // Called every frame - virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override; - - + virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override; };