From d8dc84a3d56df839895f1c417a4d9cbee763d262 Mon Sep 17 00:00:00 2001
From: 高章伟 <gaozhangwei@prec-tech.com>
Date: 星期五, 03 三月 2023 14:50:59 +0800
Subject: [PATCH] gzw 测试环境代码更新

---
 force-app/main/default/classes/MCAEHandler.cls |  108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 108 insertions(+), 0 deletions(-)

diff --git a/force-app/main/default/classes/MCAEHandler.cls b/force-app/main/default/classes/MCAEHandler.cls
index 0daf426..07a451c 100644
--- a/force-app/main/default/classes/MCAEHandler.cls
+++ b/force-app/main/default/classes/MCAEHandler.cls
@@ -13,6 +13,114 @@
         this.oldList = (List<Maintenance_Contract_Asset_Estimate__c>) Trigger.old;
     }
 
+    protected override void afterUpdate() {
+        // updateMainContract();
+    }
+
+    public void updateMainContract(){
+        System.debug(LoggingLevel.INFO, '*** in update: ');
+        Map<String,List<Maintenance_Contract_Asset_Estimate__c>> mcaMap = new Map<String,List<Maintenance_Contract_Asset_Estimate__c>>();
+        Map<String,Maintenance_Contract_Asset_Estimate__c> assetIds = new Map<String,Maintenance_Contract_Asset_Estimate__c>();
+        for (Maintenance_Contract_Asset_Estimate__c  mca: newList) {
+            System.debug(LoggingLevel.INFO, '***test mca.Asset__c: '+ mca.Asset__c);
+            //淇濇湁璁惧
+            if(String.isNotBlank(mca.Asset__c)){
+                assetIds.put(mca.Asset__c,mca);
+            System.debug(LoggingLevel.INFO, '***test mca.Asset__c: '+ mca.Asset__c);
+
+            }
+            //鎶ヤ环
+            if(mca.Repair_Price__c!=0 && mca.Repair_Price__c!=null){
+            // if(mca.Maintenance_Contract_Estimate__c!='' && mca.Maintenance_Contract_Estimate__c!=null){
+                List<Maintenance_Contract_Asset_Estimate__c> mcaList = new List<Maintenance_Contract_Asset_Estimate__c>();
+                mcaList.add(mca);
+                if(mcaMap.containsKey(mca.Maintenance_Contract_Estimate__c)){
+                    List <Maintenance_Contract_Asset_Estimate__c> mlist = mcaMap.get(mca.Maintenance_Contract_Estimate__c);
+                    mlist.add(mca);
+                    mcaMap.put(mca.Maintenance_Contract_Estimate__c,mlist);
+                }else{
+                    mcaMap.put(mca.Maintenance_Contract_Estimate__c,mcaList);
+                }
+            }
+            
+        }
+        //鍚堝悓璁惧 
+        List<Maintenance_Contract_Asset__c> upMcAssetList = new List<Maintenance_Contract_Asset__c>();
+        for (Maintenance_Contract_Asset__c mcasset : [SELECT Id,Maintenance_Contract_Asset_Estimate__c FROM Maintenance_Contract_Asset__c WHERE Asset__c IN:assetIds.keySet()]) {
+            Maintenance_Contract_Asset_Estimate__c mca= assetIds.get(mcasset.Maintenance_Contract_Asset_Estimate__c); 
+            mcasset.Third_Party_Return__c = mca.Third_Party_Return__c;
+            mcasset.Surcharge_Defective_Contract__c = mca.Surcharge_Defective_Contract__c;
+            upMcAssetList.add(mcasset);
+        }
+
+
+        //鎶ヤ环
+        List<Maintenance_Contract_Estimate__c> upMEstimateList = new List<Maintenance_Contract_Estimate__c>();
+        //缁翠慨鍚堝悓
+        List<Maintenance_Contract__c> upMContractList = new List<Maintenance_Contract__c>();
+        for (Maintenance_Contract_Estimate__c mc : [SELECT Id, Maintenance_Contract__c,IsSyncing__c FROM Maintenance_Contract_Estimate__c WHERE Id IN:mcaMap.keySet()]) {
+            Boolean hasThirdPartyReturnc = false;
+            Boolean hasSurchargeDefective = false;
+
+            for (Maintenance_Contract_Asset_Estimate__c mca: mcaMap.get(mc.Id)) {
+                    if(mca.Third_Party_Return__c == true){
+                        hasThirdPartyReturnc = true;
+                    }
+                    if(mca.Surcharge_Defective_Contract__c == true){
+                        hasSurchargeDefective = true;
+                    }
+                System.debug(LoggingLevel.INFO, '*** boolean: ' + hasThirdPartyReturnc);
+                System.debug(LoggingLevel.INFO, '*** boolean: ' + hasSurchargeDefective);
+            }
+            if(hasThirdPartyReturnc == true){
+                mc.Third_Party_Return__c = true;
+                mc.Surcharge_Defective_Contract__c = false;
+            }else if(hasThirdPartyReturnc == false && hasSurchargeDefective == true){
+                mc.Surcharge_Defective_Contract__c = true;
+                mc.Third_Party_Return__c = false;
+            }else if(hasThirdPartyReturnc == false && hasSurchargeDefective == false){
+                mc.Surcharge_Defective_Contract__c = false;
+                mc.Third_Party_Return__c = false;
+            }
+ 
+            if(mc.IsSyncing__c == true){           
+                if(mc.Maintenance_Contract__c != null){
+                    Maintenance_Contract__c mContract = new Maintenance_Contract__c();
+                    mContract.Id = mc.Maintenance_Contract__c;
+                    mContract.Third_Party_Return_Contract__c = mc.Third_Party_Return__c;
+                    mContract.Surcharge_Defective_Contract__c = mc.Surcharge_Defective_Contract__c;
+                    // if(hasThirdPartyReturnc == true){
+                    //     mContract.Third_Party_Return_Contract__c = true;
+                    //     mContract.Surcharge_Defective_Contract__c = false;
+                    // }else{
+                    //     mContract.Surcharge_Defective_Contract__c = true;
+                    //     mContract.Third_Party_Return_Contract__c = false;
+                    // }
+
+                    System.debug(LoggingLevel.INFO, '*** upMContractList: ' + upMContractList);
+                    upMContractList.add(mContract);
+                }
+            }
+            upMEstimateList.add(mc);
+
+        }
+        if(upMEstimateList.size()>0){
+            update upMEstimateList;
+        }
+        System.debug(LoggingLevel.INFO, '*** 鎶ヤ环: ' + upMEstimateList);
+        System.debug(LoggingLevel.INFO, '*** 缁翠慨鍚堝悓: ' + upMContractList);
+        System.debug(LoggingLevel.INFO, '*** 鍚堝悓璁惧: ' + upMcAssetList);
+
+        if(upMContractList.size()>0){
+            update upMContractList;
+        }
+
+        if(upMcAssetList.size()>0){
+            update upMcAssetList;
+        }
+
+    }
+
     protected override void beforeUpdate() {
         
     }

--
Gitblit v1.9.1