From 3e22c533dd00a70f1bb7bb8575b5cb0335551626 Mon Sep 17 00:00:00 2001
From: xiaoding721 <33130084+xiaoding721@users.noreply.github.com>
Date: 星期一, 14 十月 2024 18:05:34 +0800
Subject: [PATCH] Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev
---
_Main/BL/Type_NewOfflinePlanCell/StaticMethod_RefreshOfflinePlan.qbl | 115 +++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 91 insertions(+), 24 deletions(-)
diff --git a/_Main/BL/Type_NewOfflinePlanCell/StaticMethod_RefreshOfflinePlan.qbl b/_Main/BL/Type_NewOfflinePlanCell/StaticMethod_RefreshOfflinePlan.qbl
index 1d7eafb..a018b69 100644
--- a/_Main/BL/Type_NewOfflinePlanCell/StaticMethod_RefreshOfflinePlan.qbl
+++ b/_Main/BL/Type_NewOfflinePlanCell/StaticMethod_RefreshOfflinePlan.qbl
@@ -8,7 +8,15 @@
[*
macroPlan.NewOfflinePlanTable( relflush );
- nopt := macroPlan.NewOfflinePlanTable( relnew, SaveDateTime := DateTime::ActualTime() );
+ nopt := macroPlan.NewOfflinePlanTable( relnew, SaveDateTime := DateTime::ActualTime() );
+
+ // 璁″垝寮�濮嬫椂闂�
+ planningDate := macroPlan.StartOfPlanning().Date()
+
+ // 鍒濆鍖栦笅绾胯鍒掑垪
+ traverse ( macroPlan, Period_MP, pmp, pmp.IsPlanning() and not pmp.IsHistorical() ) {
+ nopt.NewOfflinePlanColumn( relnew, StartDate := pmp.StartDate(), EndDate := pmp.EndDate() );
+ }
// 鐢熸垚涓嬬嚎璁″垝琛ㄣ�愪竴鏉′骇绾垮湪鍚屼竴澶╀笉浼氫骇鐢熶袱娆$浉鍚屼骇鍝佺殑鍛ㄦ湡浠诲姟銆�
traverse ( macroPlan, Unit, u, u.HasCapacityTypeTime()
@@ -48,32 +56,10 @@
detaileNOPCell := detailedNOPR.NewOfflinePlanCell( relnew,
Quantity := ns.Quantity().Round( 0 ),
InventoryWeight := pispippl.InventoryLevelEnd() - pispippl.MinInventoryLevel(),
- ShiftPatternName := guard( sdt.Name(), "" ),
+ ShiftPatternName := guard( sp.Name(), "" ),
ShiftPatternStart := guard( sdt.StartDateTime().Format( "H:m" ), "" ),
ShiftPatternEnd := guard( sdt.EndDateTIme().Format( "H:m" ), "" ) );
detaileNOPCell.NewOfflinePlanColumn( relset, nopc );
- }
- }
- }
-
- // 璁剧疆鐢熶骇椤哄簭銆愬涓嬬嚎璁″垝鏄庣粏鐢熸晥銆�
-
-
- // 銆愮敓鎴愬悎璁′笅绾胯鍒掋��
- totalNOPR := nopt.NewOfflinePlanRow( relnew, ProductID := "All", ProductionLine := u.ID(), Type := "2" );
- detailNOPRs := selectset( nopt, NewOfflinePlanRow, tempNOPR, tempNOPR.ProductionLine() = u.ID() and tempNOPR.Type() = "1" );
- traverse ( detailNOPRs, Elements, detailNOPR ) {
- traverse ( detailNOPR, NewOfflinePlanCell, detailNOPCell ) {
- // 鐢熶骇涓嬬嚎璁″垝銆愪骇绾垮悎璁°�戝崟鍏冩牸
- totalNOPRCell := select( totalNOPR, NewOfflinePlanCell, tempNOPCell, tempNOPCell.NewOfflinePlanColumn() = detailNOPCell.NewOfflinePlanColumn() );
- if ( isnull( totalNOPRCell ) ) {
- totalNOPRCell := totalNOPR.NewOfflinePlanCell( relnew );
- totalNOPRCell.NewOfflinePlanColumn( relset, detailNOPCell.NewOfflinePlanColumn() ); // 璁剧疆鍒�
- // 灏嗘槑缁嗗崟鍏冩牸鍏宠仈鍒板悎璁″崟鍏冩牸
- totalNOPRCell.Detailed( relinsert, detailNOPCell );
- } else {
- // 灏嗘槑缁嗗崟鍏冩牸鍏宠仈鍒板悎璁″崟鍏冩牸
- totalNOPRCell.Detailed( relinsert, detailNOPCell );
}
}
}
@@ -88,6 +74,87 @@
}
}
}
+
+ // 銆愮敓鎴愬悎璁′笅绾胯鍒掋��
+ totalNOPR := nopt.NewOfflinePlanRow( relnew, ProductID := "All", ProductionLine := u.ID(), Type := "2" );
+ detailNOPRs := selectset( nopt, NewOfflinePlanRow, tempNOPR, tempNOPR.ProductionLine() = u.ID() and tempNOPR.Type() = "1" );
+ traverse ( detailNOPRs, Elements, detailNOPR ) {
+ shiftPatternNOPCell := select( detailNOPR, NewOfflinePlanCell, tempNOPCell, tempNOPCell.ShiftPatternName() <> "" );
+ traverse ( detailNOPR, NewOfflinePlanCell, detailNOPCell ) {
+ // 鐢熶骇涓嬬嚎璁″垝銆愪骇绾垮悎璁°�戝崟鍏冩牸
+ totalNOPRCell := select( totalNOPR, NewOfflinePlanCell, tempNOPCell, tempNOPCell.NewOfflinePlanColumn() = detailNOPCell.NewOfflinePlanColumn() );
+ if ( isnull( totalNOPRCell ) ) {
+ totalNOPRCell := totalNOPR.NewOfflinePlanCell( relnew,
+ ShiftPatternName := shiftPatternNOPCell.ShiftPatternName(),
+ ShiftPatternStart := shiftPatternNOPCell.ShiftPatternStart(),
+ ShiftPatternEnd := shiftPatternNOPCell.ShiftPatternEnd() );
+ totalNOPRCell.NewOfflinePlanColumn( relset, detailNOPCell.NewOfflinePlanColumn() ); // 璁剧疆鍒�
+ // 灏嗘槑缁嗗崟鍏冩牸鍏宠仈鍒板悎璁″崟鍏冩牸
+ totalNOPRCell.Detailed( relinsert, detailNOPCell );
+ } else {
+ // 灏嗘槑缁嗗崟鍏冩牸鍏宠仈鍒板悎璁″崟鍏冩牸
+ totalNOPRCell.Detailed( relinsert, detailNOPCell );
+ }
+ }
+ }
+
+ // 璁剧疆鐢熶骇椤哄簭銆愬涓嬬嚎璁″垝鏄庣粏鐢熸晥銆�
+ indexColumn := select( nopt, NewOfflinePlanColumn, tempNOPC, tempNOPC.StartDate() = planningDate );
+ previousColumn := indexColumn.PreviousNOPColumn();
+ nextColumn := indexColumn.NextNOPColumn();
+ while ( not isnull( indexColumn.NextNOPColumn() )
+ // and indexColumn.ColumnDate() <= Date::Construct( 2020, 4, 1 ) // 娴嬭瘯瀹為檯鍦烘櫙鏃跺彲浠ヨ繃婊�
+ )
+ {
+ orderNr := 1;
+ nopcells := selectsortedset( indexColumn, NewOfflinePlanCell, tempNOPCell, tempNOPCell.FindProductionLineAndType( u.ID(), "1" ), tempNOPCell.InventoryWeight() );
+ initialSize := nopcells.Size();
+ // info( "璁″垝寮�濮嬫椂闂达細", planningDate.Format( "Y-M2-D2" ), " 绱㈠紩鏃堕棿锛�", indexColumn.StartDate().Format( "Y-M2-D2" ), " 涓暟锛�", nopcells.Size() );
+
+ if ( nopcells.Size() > 0 ) {
+
+ // 鍒ゅ畾1
+ previousOPCell := maxselect( previousColumn, NewOfflinePlanCell, tempNOPCell, tempNOPCell.FindProductionLineAndType( u.ID(), "1" ), tempNOPCell.OrderNr() );
+ if ( isnull( previousOPCell ) or indexColumn.StartDate() = planningDate ) {
+ nopcell := nopcells.Element( 0 );
+ nopcell.Order( "#" + orderNr.Format( "N(LPad0(2))" ) );
+ nopcell.OrderNr( orderNr );
+ orderNr++;
+ nopcells.Remove( nopcell );
+ } else {
+ nopcell := select( nopcells, Elements, tempNOPCell, tempNOPCell.NewOfflinePlanRow().ProductID() = previousOPCell.NewOfflinePlanRow().ProductID() );
+ if ( not isnull( nopcell ) ) {
+ nopcell.Order( "#" + orderNr.Format( "N(LPad0(2))" ) );
+ nopcell.OrderNr( orderNr );
+ orderNr++;
+ nopcells.Remove( nopcell );
+ }
+ }
+
+ // 鍒ゅ畾2
+ nextNOPCells := selectset( nopcells, Elements, tempOPC,
+ exists( nextColumn, NewOfflinePlanCell, nextOPCell, nextOPCell.FindProductionLineAndType( u.ID(), "1" ) and
+ nextOPCell.NewOfflinePlanRow().ProductID() = tempOPC.NewOfflinePlanRow().ProductID() ) ); // 鎵句笅涓�鍒楁槸鍚︽湁褰撳墠鍒楃敓浜х殑浜у搧
+ if ( nextNOPCells.Size() = 1 ) {
+ nopcell := nextNOPCells.Element( 0 );
+ nopcell.Order( "#" + initialSize.Format( "N(LPad0(2))" ) );
+ nopcell.OrderNr( initialSize );
+ nopcells.Remove( nopcell );
+ }
+
+ // 鍒ゅ畾3
+ traverse ( nopcells, Elements, opcell ) {
+ opcell.Order( "#" + orderNr.Format( "N(LPad0(2))" ) );
+ opcell.OrderNr( orderNr );
+ orderNr++;
+ nopcells.Remove( opcell );
+ }
+ }
+
+ indexColumn := indexColumn.NextNOPColumn();
+ previousColumn := indexColumn.PreviousNOPColumn();
+ nextColumn := indexColumn.NextNOPColumn();
+ }
}
*]
}
--
Gitblit v1.9.3