From 81b0892b8c6aa064a9e8dbca09a8f7f1eb6de40e Mon Sep 17 00:00:00 2001
From: 高章伟 <gaozhangwei@prec-tech.com>
Date: 星期四, 24 二月 2022 19:12:29 +0800
Subject: [PATCH] 1.15---2.24 变更代码

---
 force-app/main/default/triggers/AccountTrigger.trigger |  257 ++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 211 insertions(+), 46 deletions(-)

diff --git a/force-app/main/default/triggers/AccountTrigger.trigger b/force-app/main/default/triggers/AccountTrigger.trigger
index 35c3989..e1fa5c8 100644
--- a/force-app/main/default/triggers/AccountTrigger.trigger
+++ b/force-app/main/default/triggers/AccountTrigger.trigger
@@ -1,53 +1,218 @@
-trigger AccountTrigger on Account (before insert, before update, after insert, after update) {
-    if (Trigger.isBefore && Trigger.isInsert) {
-        //鏂板缓涔嬪墠灏辩粰璧嬪�� gwy 2021-06-16
-        for (Account acc : Trigger.new) {
-            if(acc.ProductSegment__c == 'IE' && acc.Sub_Use1__c != null){
-                acc.Sub_Use__c  = acc.Sub_Use1__c;
+/**
+ * 瀹㈡埛鍚屾 鍦⊿P銆丟I涓绘媴褰撳彉鍖栨椂鏇存柊璇环鏉冮檺
+ */
+trigger AccountTrigger on Account (after insert, after update, before delete, before insert, before update, after delete ) {
+    if (StaticParameter.EscapeAccountTrigger) {
+System.debug('Escape銆丒scapeAccountTrigger:::::' + StaticParameter.EscapeAccountTrigger);
+        return;
+    }
+    if ((Trigger.isAfter && Trigger.isInsert) || (Trigger.isAfter && Trigger.isUpdate) || (Trigger.isBefore && Trigger.isDelete)) {
+        // 鍚屾鍒� Account2__c
+        AccountTrigger.syncAccount2(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
+//        // 鍚屾鍒� MB_Account__c
+        //AccountTrigger.syncMBAccount(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
+    }
+    if ((Trigger.isAfter && Trigger.isInsert) || Trigger.isUpdate || (Trigger.isAfter && Trigger.isDelete)) {
+        // 缁忛攢鍟嗘湁鏁堝崗璁垽鏂� BY GAO
+        AccountEffectiveContract.syncAccountContract(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
+    }
+
+    //CHAN-ADE32V 妫�鏌ユ垬鐣ョ瀹や腑鐨勭瀹ゅ悕鏄惁閲嶅 by wei
+    if (Trigger.isBefore && (Trigger.isInsert || Trigger.isUpdate)) {
+        System.debug('=============> checkDepartment start');
+        AccountTrigger.checkDepartment(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
+        if(Trigger.isUpdate){
+            for(Account acc : Trigger.new){
+                if( acc.Is_Active__c == '鐒″姽' && acc.OwnerId == UserInfo.getUserId()){
+                    acc.Is_Active__c = '鑽夋涓�';
+
+                }
+        
             }
-            if(acc.ProductSegment__c == 'IE' && acc.Sub_UseA__c != null){
-                acc.Sub_UseD__c = acc.Sub_UseA__c;
-            }
-            if(acc.ProductSegment__c == 'BS' && acc.IndustryB__c != null){
-                acc.IndustryC__c  = acc.IndustryB__c;
-            }
-            if(acc.ProductSegment__c == 'BS' && acc.IndustryBD__c != null){
-                acc.IndustryCD__c = acc.IndustryBD__c;
-            } 
         }
-        AccountTriggerHandler.setIsNew(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
-        AccountTriggerHandler.setSubUse(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
-    }
-    if (Trigger.isAfter && Trigger.isInsert) {
-        AccountTriggerHandler.setDealerGroup(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
-        AccountTriggerHandler.updateCampaignRelationship(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap,'1');
-    }
-    if (Trigger.isBefore && Trigger.isUpdate) {
-        //鏇存柊鍓嶅氨缁欒祴鍊� gwy 2021-06-16
-        for (Account acc : Trigger.new) {
-            if(acc.ProductSegment__c == 'IE' && acc.Sub_Use1__c != null){
-                acc.Sub_Use__c  = acc.Sub_Use1__c;
-            }
-            if(acc.ProductSegment__c == 'IE' && acc.Sub_UseA__c != null){
-                acc.Sub_UseD__c = acc.Sub_UseA__c;
-            }
-            if(acc.ProductSegment__c == 'BS' && acc.IndustryB__c != null){
-                acc.IndustryC__c  = acc.IndustryB__c;
-            }
-            if(acc.ProductSegment__c == 'BS' && acc.IndustryBD__c != null){
-                acc.IndustryCD__c = acc.IndustryBD__c;
-            }  
+    }   
+    if (System.Test.isRunningTest()) {
+        if(Trigger.isInsert & Trigger.isAfter){
+            AfterCreateHospitalTrigger.generateDepartmentClass(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
         }
-        AccountTriggerHandler.setSubUse(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
-        AccountTriggerHandler.updateForDealer(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
-        AccountTriggerHandler.dealerAccountApproval(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
-        AccountTriggerHandler.CheckAccoutnNameChange(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
     }
-    if (Trigger.isAfter && Trigger.isUpdate) {
-        AccountTriggerHandler.dealerAccountApproval2(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
-        AccountTriggerHandler.setBusinesslicense(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
+    if(Trigger.isUpdate && Trigger.isBefore){
     }
-    if ((Trigger.isAfter && Trigger.isInsert) || (Trigger.isBefore && Trigger.isUpdate)) {
-        SBG001TriggerHandler.SBG001AccountTrigger(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
+    
+    if(Trigger.isAfter && Trigger.isUpdate){
+        System.debug('+++====+++===+++== OwnerId Start');
+        AccountTrigger.changeOwnerId(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
+        AccountTrigger.setDepartmentOwner(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
+        AfterCreateHospitalTrigger.generateDepartmentClass(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
+        AccountTrigger.fseChangeToUpdRepair(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap);
+        /**
+         * HWAG-B4PCZ5 2018-09-19 start 濡傛灉瀹㈡埛鏇存柊SP锛孏I 涓绘媴褰擄紝
+         * 鍒欏垹闄ゅ師鏉ョ殑鐢ㄦ埛鍦ㄦ墍瀵瑰簲璇环鐨勫叡浜鍒欙紝骞舵牴鎹柊涓绘媴褰撳垱寤烘柊鍏变韩瑙勫垯
+         */
+        list<Account> updateAcc = new list<Account>();
+        list<ID> RemoveUsers = new list<ID>();
+        list<string> allViceAliasList = new list<string>();
+        for(Account NewAcc : Trigger.new) {
+            Account OldAcc =  Trigger.oldMap.get(NewAcc.id);
+            if(NewAcc.FSE_GI_Main_Leader__c != OldAcc.FSE_GI_Main_Leader__c 
+                || NewAcc.FSE_SP_Main_Leader__c != OldAcc.FSE_SP_Main_Leader__c
+                /* SWAG-B7LADC 2018/12/19 FSE ENG   start*/
+                || NewAcc.FSE_ENG_Main_Leader__c != OldAcc.FSE_ENG_Main_Leader__c
+                || NewAcc.FSE_ENG_Vice_Leader__c != OldAcc.FSE_ENG_Vice_Leader__c
+                || NewAcc.FSE_GI_Vice_Leader__c != OldAcc.FSE_GI_Vice_Leader__c
+                || NewAcc.FSE_SP_Vice_Leader__c != OldAcc.FSE_SP_Vice_Leader__c
+                /* SWAG-B7LADC 2018/12/19 FSE ENG   start*/
+                )
+            {
+                updateAcc.add(NewAcc);
+                if(OldAcc.FSE_GI_Main_Leader__c !=null && NewAcc.FSE_GI_Main_Leader__c != OldAcc.FSE_GI_Main_Leader__c){
+                    RemoveUsers.add(OldAcc.FSE_GI_Main_Leader__c);
+                }
+                if(OldAcc.FSE_SP_Main_Leader__c !=null && NewAcc.FSE_SP_Main_Leader__c != OldAcc.FSE_SP_Main_Leader__c){
+                    RemoveUsers.add(OldAcc.FSE_SP_Main_Leader__c);
+                }
+                /* SWAG-B7LADC 2018/12/19 FSE ENG   start*/
+                if(OldAcc.FSE_ENG_Main_Leader__c !=null && NewAcc.FSE_ENG_Main_Leader__c != OldAcc.FSE_ENG_Main_Leader__c){
+                    RemoveUsers.add(OldAcc.FSE_ENG_Main_Leader__c);
+                }
+                if( OldAcc.FSE_ENG_Vice_Leader__c != null && NewAcc.FSE_ENG_Vice_Leader__c != OldAcc.FSE_ENG_Vice_Leader__c){
+                    for(String UsrName : OldAcc.FSE_ENG_Vice_Leader__c.split('[,\\锛宂')){
+                        allViceAliasList.add(UsrName);
+                    }
+
+                 }
+                if(OldAcc.FSE_GI_Vice_Leader__c != null &&  NewAcc.FSE_GI_Vice_Leader__c != OldAcc.FSE_GI_Vice_Leader__c){
+                    for(String UsrName : OldAcc.FSE_GI_Vice_Leader__c.split('[,\\锛宂')){
+                        allViceAliasList.add(UsrName);
+                    }
+                 }
+                if(OldAcc.FSE_SP_Vice_Leader__c != null && NewAcc.FSE_SP_Vice_Leader__c != OldAcc.FSE_SP_Vice_Leader__c){
+                    for(String UsrName : OldAcc.FSE_SP_Vice_Leader__c.split('[,\\锛宂')){
+                        allViceAliasList.add(UsrName);
+                    }
+                 }
+                /* SWAG-B7LADC 2018/12/19 FSE ENG   start*/
+            }
+
+        }
+        //throw new ControllerUtil.myException('Anydatatype_msgaaaaaaaa:'+allViceAliasList);
+
+        if(updateAcc.size() > 0){
+            if(allViceAliasList.size() > 0){
+                 List<User> loopUser = [select id from user where Alias__c in:allViceAliasList];
+                 for(User temUser : loopUser){
+                    RemoveUsers.add(temUser.id);
+                 }
+            }
+            list<Statu_Achievements__c> updateSA = 
+            [select id,Opportunity__c from Statu_Achievements__c where 
+            Opportunity__r.Hospital__c in : updateAcc
+            and DeliveryDate__c != null 
+            and ForecastAccuracyObject__c = true
+             ];    
+            //throw new ControllerUtil.myException('Anydatatype_msgaaaaaaaa:'+updateSA);
+            if(updateSA != null || updateSA.size() > 0){
+                list<ID> temOpportunity = new list<ID>();
+                for(Statu_Achievements__c TemSA :updateSA){
+                    temOpportunity.add(TemSA.Opportunity__c);
+                }
+                list<OpportunityShare> deleteOS = 
+                [select id from OpportunityShare 
+                    where UserOrGroupId in: RemoveUsers 
+                    and OpportunityId in: temOpportunity
+                    and RowCause = 'Manual' 
+                ];
+                if(deleteOS != null &&deleteOS.size() > 0){
+                    delete deleteOS;
+                }
+                StaticParameter.EscapeNFM010UpsertStatuAchievementsTrigger = true;
+                upsert updateSA;
+            }
+        }
+        //HWAG-B4PCZ5 2018-09-19 end 
+        //NFM112 2021/11/10 start
+        String Idbox;
+        for(Account account : Trigger.new){
+           Account old = Trigger.oldMap.get(account.Id);
+           if(old.FirstParagraph__c != account.FirstParagraph__c  || old.MonthlyPayment__c != account.MonthlyPayment__c){
+                    Idbox = account.Id;
+            }
+        }
+        if(Idbox != null){
+            BatchIF_Log__c iflog = new BatchIF_Log__c();
+            iflog.Type__c = 'NFM112';
+            iflog.Log__c  = 'callout start\n';
+            insert iflog;
+            iflog = [Select Id, Name from BatchIF_Log__c where Id = :iflog.Id];
+            System.debug(Logginglevel.DEBUG, 'NFM112_' + iflog.Name + ' start');                  
+            NFM112Controller.executeNotFuture(iflog.Id, Idbox);
+        }
+        //NFM112 2021/11/10 end
     }
+    
+    //add            wangweipeng              2022/02/10                            start
+    //缁忛攢鍟嗙殑鎬ц川鍙戠敓鍙樺寲锛岄偅涔堥渶瑕佸彂閭欢锛屽叾涓竴涓敹浠朵汉涓哄ぇ鍖哄姪鐞�
+    //澶у尯鍔╃悊锛氭牴鎹缁忛攢鍟嗘墍鍦ㄧ殑閭d釜澶у尯锛屾潵鍒ゆ柇鍒板簳鍙戠粰璋侊紝姣忎釜澶у尯鍔╃悊閮芥湁涓�涓汉锛岀洰鍓嶆槸瀛樺埌鑷畾涔夋簮鏁版嵁閲岄潰浜�
+    if(Trigger.isBefore){
+        //鐢ㄤ簬瀛樻斁姝ょ粡閿�鍟嗘槸閭d釜澶у尯
+        Set<String> setStaff = new Set<String>();
+        if(Trigger.isUpdate){
+            for (Account acc : Trigger.new) {
+                //鍒ゆ柇褰撳墠淇敼鐨勫鎴锋槸鍚︿负缁忛攢鍟�
+                if(acc.RecordTypeId == '01210000000Qem1'){
+                    //濡傛灉鏄慨鏀圭粡閿�鍟嗭紝閭d箞鍒ゆ柇姝ょ粡閿�鍟嗙殑鍏堟鏍囪瘑鏄惁鍙戠敓鍙樺寲锛屽鏋滃彂閫佸彉鍖栵紝閭d箞灏辨洿鏂颁竴涓嬪ぇ鍖�
+                    if(acc.FirstParagraphEnd__c != Trigger.oldMap.get(acc.Id).FirstParagraphEnd__c){
+                        setStaff.add(acc.Salesdepartment_HP__c);                    
+                    }
+                }
+            }
+        }else if(Trigger.isInsert){
+            for (Account acc : Trigger.new) {
+                //鍒ゆ柇褰撳墠鏂板鐨勫鎴锋槸鍚︿负缁忛攢鍟�
+                if(acc.RecordTypeId == '01210000000Qem1'){
+                    setStaff.add(acc.Salesdepartment_HP__c);
+                }
+            }
+        }
+        if(setStaff.size() > 0){
+            //鑾峰彇瀵瑰簲鐨勮嚜瀹氫箟鍏冩暟鎹�
+            List<FSE_Regional_Assistant_Account__mdt> usrList = [select id,MasterLabel,DeveloperName,UserName__c,UserId__c from FSE_Regional_Assistant_Account__mdt where MasterLabel in :setStaff];
+            if(usrList != null && usrList.size() > 0){
+                //鑾峰彇澶у尯瀵瑰簲鐨勫姪鐞嗕汉鐨刬d
+                if(Trigger.isUpdate){
+                    for (Account acc : Trigger.new) {
+                        for(FSE_Regional_Assistant_Account__mdt fraam : usrList){
+                            if(acc.FirstParagraphEnd__c != Trigger.oldMap.get(acc.Id).FirstParagraphEnd__c){
+                                if(fraam.MasterLabel == acc.Salesdepartment_HP__c){
+                                    acc.FSE_Regional_Assistant_Account__c = fraam.UserId__c;
+                                }
+                            }
+                        }
+                    }
+                }else if(Trigger.isInsert){
+                    for (Account acc : Trigger.new) {
+                       for(FSE_Regional_Assistant_Account__mdt fraam : usrList){
+                            if(fraam.MasterLabel == acc.Salesdepartment_HP__c){
+                                acc.FSE_Regional_Assistant_Account__c = fraam.UserId__c;
+                            }
+                        } 
+                    }
+                }
+            }
+        }
+    }
+    //add            wangweipeng              2022/02/10                            end
+    
+    // if(Trigger.isUpdate){
+    //     List<String> IdList = new List<String>();
+    //     for(Account account : Trigger.new){
+    //        Account old = Trigger.oldMap.get(account.Id);
+    //        if(old.FirstParagraph__c != account.FirstParagraph__c  || old.MonthlyPayment__c != account.MonthlyPayment__c){
+    //                 IdList.add(account.Id);
+    //         }
+    //     }
+    //     if(IdList.size()>0){
+    //         UpdateContractAimAmountHandler.sendToSAP(IdList);
+    //     }
+    // }
 }
\ No newline at end of file

--
Gitblit v1.9.1