From d729cf0951344771245befd9ae8b0b97d133c7f7 Mon Sep 17 00:00:00 2001
From: xiaoding721 <33130084+xiaoding721@users.noreply.github.com>
Date: 星期一, 25 十一月 2024 20:41:57 +0800
Subject: [PATCH] 班次计划下发添加保养班次剔除

---
 _Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_GenerateDispatchData.qbl |   51 ++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 44 insertions(+), 7 deletions(-)

diff --git a/_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_GenerateDispatchData.qbl b/_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_GenerateDispatchData.qbl
index 9da63db..b5c8382 100644
--- a/_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_GenerateDispatchData.qbl
+++ b/_Main/BL/Type_DispatchShiftSchedulingInformation/StaticMethod_GenerateDispatchData.qbl
@@ -41,6 +41,7 @@
     traverse( offlinePlan,NewOfflinePlanRow,row ,not row.ProductionLine().ToUpper().LikeUserLocale( "MOMO" )){
       line := null( DispatchShiftSchedulingLine );
       factory := constnull( Unit );
+      unit := constnull( Unit );
       {
         unitHandle := unitIndexTree.GetHandle( row.ProductionLine() );
         unitIndex := guard( unitIndexTree.Root().Child( unitHandle ), null( NamedValue ));
@@ -52,12 +53,16 @@
       
       traverse( row,NewOfflinePlanCell,cell, startDate <= cell.NewOfflinePlanColumn().StartDate() and endDate >= cell.NewOfflinePlanColumn().EndDate()){
         product := null( DispatchShiftSchedulingProduct );
+        remark := "";
+        if( not isnull( unit )){
+          remark := ShiftPlan::CalculateRemark( unit,cell.NewOfflinePlanColumn().StartDate(),cell.NewOfflinePlanColumn().EndDate() );
+        }
         {
           lineKey := row.ProductionLine() + cell.NewOfflinePlanColumn().StartDate().AsQUILL();
           lineHandle := lineIndexTree.GetHandle( lineKey );
           lineIndex := guard( lineIndexTree.Root().Child( lineHandle ),null( NamedValue ));
           if( isnull( lineIndex )){
-            line := owner.DispatchShiftSchedulingLine( relnew,ID := IDHolder::GetGUID(),LineName := row.ProductionLine(),ShiftDate := cell.NewOfflinePlanColumn().StartDate() );
+            line := owner.DispatchShiftSchedulingLine( relnew,ID := IDHolder::GetGUID(),LineName := row.ProductionLine(),ShiftDate := cell.NewOfflinePlanColumn().StartDate(),Remark := remark );
             line.FactoryName( factory.Name() );
             line.InterfaceTime( now );
             line.VersionName( macroPlan.MDSMacroPlan().Description() );
@@ -85,6 +90,7 @@
     traverse( macroPlan,NewAssemblyOnlinePlanRow,row , row.ProductionLine().ToUpper().LikeUserLocale( "MOMO" )){
       line := null( DispatchShiftSchedulingLine );
       factory := constnull( Unit );
+      unit := constnull( Unit );
       {
         unitHandle := unitIndexTree.GetHandle( row.ProductionLine() );
         unitIndex := guard( unitIndexTree.Root().Child( unitHandle ), null( NamedValue ));
@@ -102,12 +108,16 @@
       
       traverse( row,NewAssemblyOnlinePlanCell,cell, startDate <= cell.NewAssemblyOnlinePlanColumn().StartDate() and endDate >= cell.NewAssemblyOnlinePlanColumn().EndDate()){
         product := null( DispatchShiftSchedulingProduct );
+        remark := "";
+        if( not isnull( unit )){
+          remark := ShiftPlan::CalculateRemark( unit,cell.NewAssemblyOnlinePlanColumn().StartDate(),cell.NewAssemblyOnlinePlanColumn().EndDate() );
+        }
         {
           lineKey := row.ProductionLine() + cell.NewAssemblyOnlinePlanColumn().StartDate().AsQUILL();
           lineHandle := lineIndexTree.GetHandle( lineKey );
           lineIndex := guard( lineIndexTree.Root().Child( lineHandle ),null( NamedValue ));
           if( isnull( lineIndex )){
-            line := owner.DispatchShiftSchedulingLine( relnew,ID := IDHolder::GetGUID(),LineName := row.ProductionLine(),ShiftDate := cell.NewAssemblyOnlinePlanColumn().StartDate() );
+            line := owner.DispatchShiftSchedulingLine( relnew,ID := IDHolder::GetGUID(),LineName := row.ProductionLine(),ShiftDate := cell.NewAssemblyOnlinePlanColumn().StartDate(),Remark := remark );
             line.FactoryName( factory.Name() );
             line.InterfaceTime( now );
             line.VersionName( macroPlan.MDSMacroPlan().Description() );
@@ -141,9 +151,21 @@
       tempProducts := selectsortedset( line,DispatchShiftSchedulingProduct,object,object.ProductionQuantity() );
       
       if( line.ShiftName() = "3" ){
-        singleShiftVolume1 := lineQuantity / 3;
-        singleShiftVolume2 := lineQuantity / 3;
-        singleShiftVolume3 := lineQuantity / 3;
+        
+        singleShiftVolume1 := 0.0;
+        singleShiftVolume2 := 0.0;
+        singleShiftVolume3 := 0.0;
+        
+        if( line.Remark().LikeUserLocale( "淇濆吇" )){
+          singleShiftVolume1 := 0.0;
+          singleShiftVolume2 := lineQuantity / 2;
+          singleShiftVolume3 := lineQuantity / 2;
+        }else{
+          singleShiftVolume1 := lineQuantity / 3;
+          singleShiftVolume2 := lineQuantity / 3;
+          singleShiftVolume3 := lineQuantity / 3;
+        }
+        
         for( i := tempProducts.Size() - 1;i >= 0; i-- ){
           product := tempProducts.Element( i );
           productionQuantity := product.ProductionQuantity();
@@ -168,8 +190,16 @@
         
       }else if( line.ShiftName() = "2" ){    
         // 240.5
-        singleShiftVolume1 := lineQuantity / 2;
-        singleShiftVolume2 := lineQuantity / 2;
+        singleShiftVolume1 := 0.0;
+        singleShiftVolume2 := 0.0;
+        if( line.Remark().LikeUserLocale( "淇濆吇" )){
+          singleShiftVolume1 := 0.0;
+          singleShiftVolume2 := lineQuantity;
+        }else{
+          singleShiftVolume1 := lineQuantity / 2;
+          singleShiftVolume2 := lineQuantity / 2;
+        }
+    
         for( i := tempProducts.Size() - 1;i >= 0; i-- ){
           product := tempProducts.Element( i );
           // 288
@@ -192,6 +222,13 @@
         
       }else if( line.ShiftName() = "1" ){
         singleShiftVolume1 := lineQuantity / 1;
+        
+        if( line.Remark().LikeUserLocale( "淇濆吇" )){
+          singleShiftVolume1 := lineQuantity / 1;
+        }else{
+          singleShiftVolume1 := lineQuantity / 1;
+        }
+        
         for( i := tempProducts.Size() - 1;i >= 0; i-- ){
           product := tempProducts.Element( i );
           productionQuantity := product.ProductionQuantity();

--
Gitblit v1.9.3