From 8c546e869f979f6f9e83d141cb8b767da6472d66 Mon Sep 17 00:00:00 2001 From: lazhen <17772815105@139.com> Date: 星期二, 15 十月 2024 16:53:46 +0800 Subject: [PATCH] Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev-zlg --- _Main/BL/Type_LocalTool/StaticMethod_BatchSetUnitShiftPattern.qbl | 34 ++++++++++++++++++++++++++++++---- 1 files changed, 30 insertions(+), 4 deletions(-) diff --git a/_Main/BL/Type_LocalTool/StaticMethod_BatchSetUnitShiftPattern.qbl b/_Main/BL/Type_LocalTool/StaticMethod_BatchSetUnitShiftPattern.qbl index b53b40e..31bd0a7 100644 --- a/_Main/BL/Type_LocalTool/StaticMethod_BatchSetUnitShiftPattern.qbl +++ b/_Main/BL/Type_LocalTool/StaticMethod_BatchSetUnitShiftPattern.qbl @@ -5,13 +5,39 @@ ShiftPattern shiftPattern, Date startDate, Date endDate, - Numbers weekdays + Numbers weekdays, + Number skipWeek ) { TextBody: [* // Akari Oct-10-2024 (created) owner := unit.MacroPlan(); + + saveDays := construct( Dates ); + flag := startDate.StartOfNextWeek(); + for( i := startDate; i<endDate; i := i + 1 ){ + if( i < flag ){ + saveDays.Add( i ); + }else{ + temp := skipWeek - 1; + while( temp > 0 ){ + i := flag; + flag := i.StartOfNextWeek(); + temp--; + + info( i.Format( "Y-M2-D2") ); + info( flag.Format( "Y-M2-D2") ); + } + } + } + + info( "----------------------------"); + + traverse( saveDays,Elements,element ){ + info( element.Format( "Y-M2-D2")); + } + dayPeriod_MPs := selectsortedset( owner,Period_MP,period_MP, period_MP.TimeUnit() = 'Day' and period_MP.StartDate() >= startDate and @@ -21,16 +47,16 @@ period_MP.StartDate() >= startDate and period_MP.EndDate() <= endDate and exists( weekdays, Elements,dayOfWeek,dayOfWeek = period_MP.StartDate().DayOfWeek() ),period_MP.StartDate()); + if( dayPeriod_MPs.Size() > 0 ){ - unitPeriodTimes := selectset( unit,UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,exists( dayPeriod_MPs,Elements,period_MP,period_MP = unitPeriodTime.Period_MP()) and not isnull( unitPeriodTime.UnitAvailability())); + unitPeriodTimes := selectset( unit,UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,exists( dayPeriod_MPs,Elements,period_MP,period_MP = unitPeriodTime.Period_MP())); if( unitPeriodTimes.Size() > 0 ){ LocalTool::SetUnitShiftPattern( owner,unitPeriodTimes,shiftPattern ); } - } if( weekPeriod_MPs.Size() <> 0 ){ traverse( weekPeriod_MPs,Elements,period_MP ){ - unitPeriodTimes := selectset( unit,UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,period_MP = unitPeriodTime.Period_MP() and not isnull( unitPeriodTime.UnitAvailability())); + unitPeriodTimes := selectset( unit,UnitPeriod.astype( UnitPeriodTime ),unitPeriodTime,period_MP = unitPeriodTime.Period_MP()); if( unitPeriodTimes.Size() > 0 ){ LocalTool::SetUnitShiftPattern( owner,unitPeriodTimes,shiftPattern ); } -- Gitblit v1.9.3