From 695020008dc1ee576c928f9c2152fbb63fcdd83f Mon Sep 17 00:00:00 2001 From: lihongji <3117313295@qq.com> Date: 星期二, 27 八月 2024 13:07:05 +0800 Subject: [PATCH] Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev --- _Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_GenerateData.qbl | 72 +++++++++++++++++++++++++++++++----- 1 files changed, 62 insertions(+), 10 deletions(-) diff --git a/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_GenerateData.qbl b/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_GenerateData.qbl index 73c5697..7a835d1 100644 --- a/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_GenerateData.qbl +++ b/_Main/BL/Type_AOnlineAndMOfflinePlanPIR/StaticMethod_GenerateData.qbl @@ -5,26 +5,78 @@ String werk, const MacroPlan macroplan, Date startdate, - Date enddate + Date enddate, + String executor ) { TextBody: [* // 鐢勫叞楦� Aug-23-2024 (created) - owner.AOnlineAndMOfflinePlanPIR( relflush ); - pir := owner.AOnlineAndMOfflinePlanPIR( relnew, Werk := werk, Version := macroplan.ScenarioName(), StartDate := startdate, EndDate := enddate ); - totalrows := 0; - traverse( macroplan, AssemblyOnlinePlanColumn, column ){ - traverse( column, AssemblyOnlinePlanCell, cell, cell.Value() <> '' and cell.AssemblyOnlinePlanRow().RowNr() = '1' ){ + cdlast := maxobject( owner, AOnlineAndMOfflinePlanPIR, cd, cd.StartDate(), cd.EndDate(), cd.Werk() ); + if( not isnull( cdlast ) ){ + loginfo := cdlast.InterfaceLoginfo(); + if( not loginfo.IsShow() ){ + loginfo.Delete(); + }else{ + loginfo.Last( false ); + } + owner.AOnlineAndMOfflinePlanPIR( relflush ); + } + nowdate := DateTime::ActualTime(); + productids := construct( Strings ); + loginfo := owner.InterfaceLoginfo( relnew, ExecuteUser := executor + , Name := Translations::InterfaceDataset_AOnlineAndMOfflinePlanPIR_Name() + , InterfaceDateTime := nowdate + , Message := '瑁呴厤涓婄嚎璁″垝 + 鏈哄姞涓嬬嚎璁″垝 - PIR' + , IsShow := false + , Last := true + , ReturnSuccess := true + , ReturnMsg := 'Success' + , Success := true + ); + pir := owner.AOnlineAndMOfflinePlanPIR( relnew, ZPPPSCode := OS::GenerateGUIDAsString(), Werk := werk, Version := macroplan.ScenarioName(), StartDate := startdate, EndDate := enddate ); + loginfo.AOnlineAndMOfflinePlanPIR( relinsert, pir ); + traverse( macroplan, AssemblyOnlinePlanColumn, column, column.ColumnDate() >= startdate and column.ColumnDate() <= enddate ){ + traverse( column, AssemblyOnlinePlanCell, cell, ( werk = 'All' or cell.AssemblyOnlinePlanRow().ProductionLine().FindString( werk, 0 ) > -1 ) + and cell.AssemblyOnlinePlanRow().RowNr() = '1' ){ quantityrow := cell.AssemblyOnlinePlanRow(); + if( not exists( productids, Elements, e, e = quantityrow.ProductID() ) ){ + productids.Add( quantityrow.ProductID() ); + } pir.PIRData( relnew, Product := quantityrow.ProductID() - , PlanningDate := column.ColumnDate() - , PlanningQty := [Number]cell.Value()); + , PlanningDate := column.ColumnDate() + , PlanningQty := [Number]cell.Value()); } } - totalrows := totalrows + pir.PIRData( relsize ); - //traverse( macroplan, OfflinePlanTable + traverse( macroplan, OfflinePlanTable, table ){ + traverse( table, OfflinePlanColumn, column, column.ColumnDate() >= startdate and column.ColumnDate() <= enddate ){ + traverse( column, OfflinePlanCell, cell, ( werk = 'All' or cell.OfflinePlanRow().ProductionLine().FindString( werk, 0 ) > -1 ) + and ( cell.OfflinePlanRow().ProductionLine() <> 'DL_MOMO' or cell.OfflinePlanRow().ProductionLine() <> 'CC_MOMO' ) ){ + row := cell.OfflinePlanRow(); + if( not exists( productids, Elements, e, e = row.ProductID() ) ){ + productids.Add( row.ProductID() ); + } + pirdata := selectobject( pir, PIRData, pirdata, pirdata.Product() = row.ProductID() and pirdata.PlanningDate() = column.ColumnDate() ); + if( isnull( pir ) ){ + pirdata := pir.PIRData( relnew, Product := row.ProductID() + , PlanningDate := column.ColumnDate() + , PlanningQty := 0 ); + } + pirdata.PlanningQty( pirdata.PlanningQty() + [Number]cell.Value() ); + } + } + } + traverse( productids, Elements, e ){ + for( date := startdate.StartOfWeek(); date <= enddate; date := ( date + Duration::Days( 1 ) ).Date() ){ + if( not exists( pir, PIRData, pirdata, pirdata.Product() = e and pirdata.PlanningDate() = date ) ){ + pir.PIRData( relnew, Product := e + , PlanningDate := date + , PlanningQty := 0 ); + } + } + } + loginfo.TotalRow( pir.PIRData( relsize ) ); *] } -- Gitblit v1.9.3