From 5a32cdfbc1d42594eb3fc7621dbd9024cda46ea5 Mon Sep 17 00:00:00 2001 From: xiaoding721 <33130084+xiaoding721@users.noreply.github.com> Date: 星期三, 29 五月 2024 19:44:02 +0800 Subject: [PATCH] PP Budget --- _Main/BL/Type_Archive/StaticMethod_Archive.qbl | 53 +++++++++++++++++ _Main/BL/Type_ArchivePPA/Attribute_SourceFileBinaryValue.qbl | 7 ++ _Main/BL/Type_Archive/StaticMethod_WriteTempFile.qbl | 14 ++-- _Main/BL/Type_Archive/StaticMethod_HandlePR.qbl | 18 +++--- _Main/BL/Type_Archive/StaticMethod_OnException.qbl | 3 + _Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Method_OnOK.def | 4 _Main/BL/Type_Archive/StaticMethod_Success.qbl | 4 + _Main/BL/Type_Archive/StaticMethod_HandlePPA_Curve_IDS.qbl | 57 +++++++++++-------- _Main/BL/Type_Archive/StaticMethod_RequirementProcessing.qbl | 17 ++++- 9 files changed, 130 insertions(+), 47 deletions(-) diff --git a/_Main/BL/Type_Archive/StaticMethod_Archive.qbl b/_Main/BL/Type_Archive/StaticMethod_Archive.qbl new file mode 100644 index 0000000..8452813 --- /dev/null +++ b/_Main/BL/Type_Archive/StaticMethod_Archive.qbl @@ -0,0 +1,53 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod Archive ( + JSON respJSON, + Archive archive, + String archiveType +) +{ + TextBody: + [* + code := respJSON.Get( "code" ).GetNumber(); + archiveFileJSONs := respJSON.Get( "archiveFiles" ); + info( archiveFileJSONs.AsString() ); + if ( code = 200 ) { + for ( i := 0; i < archiveFileJSONs.Size(); i++ ) { + archiveFileJSON := archiveFileJSONs.Get( i ); + + fileName := archiveFileJSON.Get( "fileName" ).GetString(); + filePath := archiveFileJSON.Get( "fileFullPath" ).GetString(); + + if ( archiveType = "PR" ) { + apr := select( archive, ArchivePR, tempAPR, tempAPR.Name() = fileName ); + if ( not isnull( apr ) ) { + apr.FilePath( filePath ); + } else { + archive.ArchivePR( relnew, Name := fileName, FilePath := filePath ); + } + } else if ( archiveType = "PP" ) { + app := select( archive, ArchivePP, tempAPP, tempAPP.Name() = fileName ); + if ( not isnull( app ) ) { + app.FilePath( filePath ); + } else { + archive.ArchivePP( relnew, Name := fileName, FilePath := filePath ); + } + } else if ( archiveType = "Budget" ) { + ab := select( archive, ArchiveBudget, tempAB, tempAB.Name() = fileName ); + if ( not isnull( ab ) ) { + ab.FilePath( filePath ); + } else { + archive.ArchiveBudget( relnew, Name := fileName, FilePath := filePath ); + } + } else if ( archiveType = "PPA" ) { + appa := select( archive, ArchivePPA, tempAPPA, tempAPPA.Name() = fileName ); + if ( not isnull( appa ) ) { + appa.FilePath( filePath ); + } else { + archive.ArchivePPA( relnew, Name := fileName, FilePath := filePath ); + } + } + } + } + *] +} diff --git a/_Main/BL/Type_Archive/StaticMethod_HandlePPA_Curve_IDS.qbl b/_Main/BL/Type_Archive/StaticMethod_HandlePPA_Curve_IDS.qbl index 9291f91..6474582 100644 --- a/_Main/BL/Type_Archive/StaticMethod_HandlePPA_Curve_IDS.qbl +++ b/_Main/BL/Type_Archive/StaticMethod_HandlePPA_Curve_IDS.qbl @@ -11,22 +11,28 @@ BinaryValue curveBinaryValue, String idsFileName, BinaryValue idsBinaryValue, - String filePath -) + String filePath, + Boolean isOverwriteFile +) as stream[JSON] { TextBody: [* // 璇锋眰鍙傛暟 - pathPPA := filePath + ppaFileName; - pathCurve := filePath + curveFileName; - pathIDS := filePath + idsFileName; - //isArchive := ifexpr( isPRArchive, "true", "false" ); - minorKey := [String]macroPlan.MDSID().MinorKey(); - json := JSON::Object() - .Add( "pathPPA", pathPPA ) - .Add( "pathCurve", pathCurve ) - .Add( "pathIDS", pathIDS ) - .Add( "minorKey", minorKey ).Build().AsString(); + pathPPA := filePath + ppaFileName; + pathCurve := filePath + curveFileName; + pathIDS := filePath + idsFileName; + info( pathPPA ); + info( pathCurve ); + isArchivePPA := ifexpr( isPPAArchive, "true", "false" ); + isOverridePPA := ifexpr( isOverwriteFile, "true", "false" ); + minorKey := [String]macroPlan.MDSID().MinorKey(); + json := JSON::Object() + .Add( "pathPPA", pathPPA ) + .Add( "isArchivePPA", isArchivePPA ) + .Add( "pathCurve", pathCurve ) + .Add( "pathIDS", pathIDS ) + .Add( "minorKey", minorKey ) + .Add( "isOverridePPA", isOverridePPA ).Build().AsString(); // 鍐欏叆涓存椂鏂囦欢 Archive::WriteTempFile( pathPPA, ppaBinaryValue ); @@ -36,17 +42,20 @@ info( json ); // 璋冪敤鎺ュ彛 - //url := "/PR/Import"; - //i := HTTPInterface::Create( archive.JavaInterfaceAddress(), archive.JavaInterfacePort() ); - //i.URL( url ); - //i.PostMethod( true ); - // - //try { - // i.Call( json ); - // - // htmlresult := i.Result(); - //} onerror { - // - //} + url := "/IDSPPACurve/Import"; + + i := HTTPInterface::Create( archive.JavaInterfaceAddress(), archive.JavaInterfacePort() ); + i.URL( url ); + i.PostMethod( true ); + i.MediaType( "application/json" ); + i.TimeOut( Duration::Minutes( 5 ) ); + + i.Call( json ); + + htmlresult := i.Result(); + + respJSON := JSON::Parse( htmlresult ); + + return emit( respJSON ); *] } diff --git a/_Main/BL/Type_Archive/StaticMethod_HandlePR.qbl b/_Main/BL/Type_Archive/StaticMethod_HandlePR.qbl index 24d0b71..abd6fc9 100644 --- a/_Main/BL/Type_Archive/StaticMethod_HandlePR.qbl +++ b/_Main/BL/Type_Archive/StaticMethod_HandlePR.qbl @@ -14,15 +14,15 @@ TextBody: [* // 璇锋眰鍙傛暟 - pathPR := filePath + prFileName; - isArchive := ifexpr( isPRArchive, "true", "false" ); - isOverride := ifexpr( isOverwriteFile, "true", "false" ); - minorKey := [String]macroPlan.MDSID().MinorKey(); - json := JSON::Object() - .Add( "pathPR", pathPR ) - .Add( "isArchive", isArchive ) - .Add( "isOverride", isOverride ) - .Add( "minorKey", minorKey ).Build().AsString(); + pathPR := filePath + prFileName; + isArchive := ifexpr( isPRArchive, "true", "false" ); + isOverride := ifexpr( isOverwriteFile, "true", "false" ); + macroPlanKey := [String]macroPlan.MDSID().MinorKey(); + json := JSON::Object() + .Add( "pathPR", pathPR ) + .Add( "isArchive", isArchive ) + .Add( "isOverride", isOverride ) + .Add( "minorKey", macroPlanKey ).Build().AsString(); // 鍐欏叆涓存椂鏂囦欢 Archive::WriteTempFile( pathPR, prBinaryValue ); diff --git a/_Main/BL/Type_Archive/StaticMethod_OnException.qbl b/_Main/BL/Type_Archive/StaticMethod_OnException.qbl index d231716..2b9ec51 100644 --- a/_Main/BL/Type_Archive/StaticMethod_OnException.qbl +++ b/_Main/BL/Type_Archive/StaticMethod_OnException.qbl @@ -8,6 +8,9 @@ { TextBody: [* + // 娓呯┖涓存椂鏁版嵁搴� + archiveExecutionStatus.AES_TemporaryDemandData().Source().FlatQuery( "truncate table A_Forecasts" ); + archiveExecutionStatus.RequirementImportExecutionStatus( relnew, ExecutionCode := 500, ExecutionIsSuccess := false, diff --git a/_Main/BL/Type_Archive/StaticMethod_RequirementProcessing.qbl b/_Main/BL/Type_Archive/StaticMethod_RequirementProcessing.qbl index b03e1bd..e61f9a7 100644 --- a/_Main/BL/Type_Archive/StaticMethod_RequirementProcessing.qbl +++ b/_Main/BL/Type_Archive/StaticMethod_RequirementProcessing.qbl @@ -37,21 +37,28 @@ if ( prBinaryValue.Size() > 0 ) { archive -> Archive::HandlePR( macroPlan, userName, prFileName, prBinaryValue, isPRArchive, filePath, isOverwriteFile ) - -> Archive::Success( macroPlan, archiveExecutionStatus, userName ) + -> Archive::Success( macroPlan, archiveExecutionStatus, userName ) + -> Archive::Archive( archive, "PR" ) -> Exception() -> Archive::OnException( archiveExecutionStatus, userName ); } else if ( ppBinaryValue.Size() > 0 ) { archive -> Archive::HandlePP( macroPlan, userName, ppFileName, ppBinaryValue, isPPArchive, filePath, isOverwriteFile ) - -> Archive::Success( macroPlan, archiveExecutionStatus, userName ) + -> Archive::Success( macroPlan, archiveExecutionStatus, userName ) + -> Archive::Archive( archive, "PP" ) -> Exception() -> Archive::OnException( archiveExecutionStatus, userName ); } else if ( budgetBinaryValue.Size() > 0 ) { archive -> Archive::HandleBudget( macroPlan, userName, budgetFileName, budgetBinaryValue, isBudgetArchive, filePath, isOverwriteFile ) - -> Archive::Success( macroPlan, archiveExecutionStatus, userName ) - -> Exception() + -> Archive::Success( macroPlan, archiveExecutionStatus, userName ) + -> Archive::Archive( archive, "Budget" ) + -> Exception() -> Archive::OnException( archiveExecutionStatus, userName ); } else { - Archive::HandlePPA_Curve_IDS( archive, macroPlan, userName, ppaFileName, ppaBinaryValue, isPPAArchive, curveFileName, curveBinaryValue, idsFileName, idsBinaryValue, filePath ); + archive -> Archive::HandlePPA_Curve_IDS( macroPlan, userName, ppaFileName, ppaBinaryValue, isPPAArchive, curveFileName, curveBinaryValue, idsFileName, idsBinaryValue, filePath, isOverwriteFile ) + -> Archive::Success( macroPlan, archiveExecutionStatus, userName ) + -> Archive::Archive( archive, "PPA" ) + -> Exception() + -> Archive::OnException( archiveExecutionStatus, userName ); } *] } diff --git a/_Main/BL/Type_Archive/StaticMethod_Success.qbl b/_Main/BL/Type_Archive/StaticMethod_Success.qbl index 8b945f0..5844f72 100644 --- a/_Main/BL/Type_Archive/StaticMethod_Success.qbl +++ b/_Main/BL/Type_Archive/StaticMethod_Success.qbl @@ -5,7 +5,7 @@ MacroPlan macroPlan, ArchiveExecutionStatus archiveExecutionStatus, String userName -) +) as stream[JSON] { TextBody: [* @@ -27,5 +27,7 @@ } else { RequirementImportExecutionStatus::Create( archiveExecutionStatus, code, "Complete", userName, message, false ); } + + return emit( respJSON ); *] } diff --git a/_Main/BL/Type_Archive/StaticMethod_WriteTempFile.qbl b/_Main/BL/Type_Archive/StaticMethod_WriteTempFile.qbl index 4dbc847..5d861d9 100644 --- a/_Main/BL/Type_Archive/StaticMethod_WriteTempFile.qbl +++ b/_Main/BL/Type_Archive/StaticMethod_WriteTempFile.qbl @@ -7,11 +7,13 @@ { TextBody: [* - file := OSFile::Construct(); - - file.Open( filePath, "Write", false ); - file.WriteBinary( binaryValue ); - - file.Close(); + if ( binaryValue.Size() > 0 ) { + file := OSFile::Construct(); + + file.Open( filePath, "Write", false ); + file.WriteBinary( binaryValue ); + + file.Close(); + } *] } diff --git a/_Main/BL/Type_ArchivePPA/Attribute_SourceFileBinaryValue.qbl b/_Main/BL/Type_ArchivePPA/Attribute_SourceFileBinaryValue.qbl new file mode 100644 index 0000000..e7278b1 --- /dev/null +++ b/_Main/BL/Type_ArchivePPA/Attribute_SourceFileBinaryValue.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute SourceFileBinaryValue +{ + #keys: '3[414996.0.408054600][414996.0.408054599][414996.0.408054601]' + ValueType: BinaryValue +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Method_OnOK.def b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Method_OnOK.def index 44983ad..3dede70 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Method_OnOK.def +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Method_OnOK.def @@ -11,8 +11,8 @@ efPR.Text() , guard( dhBinaryDataPR.Data().AsBinaryValue(), BinaryValue::Construct( 0 ) ), cPR.Checked(), efPP.Text() , guard( dhBinaryDataPP.Data().AsBinaryValue(), BinaryValue::Construct( 0 ) ), cPP.Checked(), efBudget.Text() , guard( dhBinaryDataBudget.Data().AsBinaryValue(), BinaryValue::Construct( 0 ) ), cBudget.Checked(), - ifexpr( cPPAPPAArchiveEnable.Checked(), ddlPPAArchive.Data().Name(), efCurve.Text() ), guard( dhBinaryDataPPA.Data().AsBinaryValue(), BinaryValue::Construct( 0 ) ), cPPA.Checked(), - efCurve.Text() , guard( dhBinaryDataCurve.Data().AsBinaryValue(), BinaryValue::Construct( 0 ) ), + dhOriginalFileNamePPA.Data() , guard( dhBinaryDataPPA.Data().AsBinaryValue(), BinaryValue::Construct( 0 ) ), cPPA.Checked(), + dhOriginalFileNameCurve.Data() , guard( dhBinaryDataCurve.Data().AsBinaryValue(), BinaryValue::Construct( 0 ) ), efIDS.Text() , guard( dhBinaryDataIDS.Data().AsBinaryValue(), BinaryValue::Construct( 0 ) ), false ); -- Gitblit v1.9.3