DESKTOP-0K9VGFE\hp
2022-03-11 0913862c088ba845fee09a2fb713b2affc2c0b5a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
// 科室担当者が変更されたら询价担当者を更新する
// 询价の「询价担当人单独维护」がfalseの場合のみ更新を行う
// 2016-03-09 tamaru@sunbridge
trigger ChangedDepartmentOwner on Account (before update) {
    Map<Id, Id> acMap = new Map<Id, Id>(); // Account, User
    if (Trigger.isUpdate && Trigger.isBefore) {
        System.debug('ChangedDepartmentOwner in');
        // 担当者更新対象リストアップ
        //20161107::::将“战略科室-其他”的客户所有人,变更为普外科的客户所有人
        //List<Id> Parlist = new List<Id>();
        //for (Account a : Trigger.old) {
        //    Parlist.add(a.Parentid);
        //}
        //if(Trigger.old.size()==1){
        //    List<Account> Acclist = [SELECT OwnerId 
        //                            from Account 
        //                            where Parentid 
        //                                in :Parlist 
        //                            AND Department_Class_Label__c = '普外科'];
        //    String accOwnerId ='';
        //    if(Acclist.size()>0){
        //       accOwnerId = Acclist[0].OwnerId;
        //    }
        //    for (Account ac : Trigger.new) {
            
        //        if(ac.Department_Class_Label__c=='其他'&&ac.OwnerId!=accOwnerId){
        //            ac.ownerid = accOwnerId;
        //        }
        //    }
        //}
        
        /*
            HWAG-BG682M start
            1、如果各种担当值发生变化,则记录下之前的数据;
            2、增加静态变量,用于accountdailyUpdatebatch 跳过用;
            3、 只更新询价主担当和各科主担当不一样的数据。
         */
        for (Account ac : Trigger.new) {
            if (ac.OwnerId != Trigger.Oldmap.get(ac.Id).OwnerId) {
                acMap.put(ac.Id, ac.OwnerId);
            }
            if(ac.FSE_Main__c != Trigger.Oldmap.get(ac.Id).FSE_Main__c ){
                ac.FSE_Main_Old__c = Trigger.Oldmap.get(ac.Id).FSE_Main__c;
            }
            if(ac.FSE_Extend_viceLeaderStr__c != Trigger.Oldmap.get(ac.Id).FSE_Extend_viceLeaderStr__c ){
                ac.FSE_Extend_viceLeaderStr_Old__c = Trigger.Oldmap.get(ac.Id).FSE_Extend_viceLeaderStr__c;
            }
            if(ac.GI_Main__c != Trigger.Oldmap.get(ac.Id).GI_Main__c ){
                ac.GI_Main_Old__c = Trigger.Oldmap.get(ac.Id).GI_Main__c;
            }
            if(ac.GI_Product_Leader__c != Trigger.Oldmap.get(ac.Id).GI_Product_Leader__c ){
                ac.GI_Product_Leader_Old__c = Trigger.Oldmap.get(ac.Id).GI_Product_Leader__c;
            }
            if(ac.SP_Main__c != Trigger.Oldmap.get(ac.Id).SP_Main__c ){
                ac.SP_Main_Old__c = Trigger.Oldmap.get(ac.Id).SP_Main__c;
            }
            if(ac.GS_Product_Leader__c != Trigger.Oldmap.get(ac.Id).GS_Product_Leader__c ){
                ac.GS_Product_Leader_Old__c = Trigger.Oldmap.get(ac.Id).GS_Product_Leader__c;
            }
            if(ac.BF_owner__c != Trigger.Oldmap.get(ac.Id).BF_owner__c ){
                ac.BF_owner_Old__c = Trigger.Oldmap.get(ac.Id).BF_owner__c;
            }
            if(ac.BF_Product_Leader__c != Trigger.Oldmap.get(ac.Id).BF_Product_Leader__c ){
                ac.BF_Product_Leader_Old__c = Trigger.Oldmap.get(ac.Id).BF_Product_Leader__c;
            }
            if(ac.GYN_owner__c != Trigger.Oldmap.get(ac.Id).GYN_owner__c ){
                ac.GYN_owner_Old__c = Trigger.Oldmap.get(ac.Id).GYN_owner__c;
            }
            if(ac.GYN_Product_Leader__c != Trigger.Oldmap.get(ac.Id).GYN_Product_Leader__c ){
                ac.GYN_Product_Leader_Old__c = Trigger.Oldmap.get(ac.Id).GYN_Product_Leader__c;
            }
            if(ac.ET_owner__c != Trigger.Oldmap.get(ac.Id).ET_owner__c ){
                ac.ET_owner_Old__c = Trigger.Oldmap.get(ac.Id).ET_owner__c;
            }
            if(ac.ET_Product_Leader__c != Trigger.Oldmap.get(ac.Id).ET_Product_Leader__c ){
                ac.ET_Product_Leader_Old__c = Trigger.Oldmap.get(ac.Id).ET_Product_Leader__c;
            }
            if(ac.ENT_owner_ID__c != Trigger.Oldmap.get(ac.Id).ENT_owner_ID__c ){
                ac.ENT_owner_ID_Old__c = Trigger.Oldmap.get(ac.Id).ENT_owner_ID__c;
            }
            if(ac.ENT_Product_Leader__c != Trigger.Oldmap.get(ac.Id).ENT_Product_Leader__c ){
                ac.ENT_Product_Leader_Old__c = Trigger.Oldmap.get(ac.Id).ENT_Product_Leader__c;
            }
            if(ac.URO_owner_ID__c != Trigger.Oldmap.get(ac.Id).URO_owner_ID__c ){
                ac.URO_owner_ID_Old__c = Trigger.Oldmap.get(ac.Id).URO_owner_ID__c;
            }
            if(ac.URO_Produc_Leader__c != Trigger.Oldmap.get(ac.Id).URO_Produc_Leader__c ){
                ac.URO_Produc_Leader_Old__c = Trigger.Oldmap.get(ac.Id).URO_Produc_Leader__c;
            }
            if(ac.FSE_GI_Main_Leader__c != Trigger.Oldmap.get(ac.Id).FSE_GI_Main_Leader__c ){
                ac.FSE_GI_Main_Leader_Old__c = Trigger.Oldmap.get(ac.Id).FSE_GI_Main_Leader__c;
            }
            if(ac.FSE_GI_Vice_Leader__c != Trigger.Oldmap.get(ac.Id).FSE_GI_Vice_Leader__c ){
                ac.FSE_GI_Vice_Leader_Old__c = Trigger.Oldmap.get(ac.Id).FSE_GI_Vice_Leader__c;
            }
            if(ac.FSE_SP_Main_Leader__c != Trigger.Oldmap.get(ac.Id).FSE_SP_Main_Leader__c ){
                ac.FSE_SP_Main_Leader_Old__c = Trigger.Oldmap.get(ac.Id).FSE_SP_Main_Leader__c;
            }
            if(ac.FSE_SP_Vice_Leader__c != Trigger.Oldmap.get(ac.Id).FSE_SP_Vice_Leader__c ){
                ac.FSE_SP_Vice_Leader_Old__c = Trigger.Oldmap.get(ac.Id).FSE_SP_Vice_Leader__c;
            }
            if(ac.FSE_ENG_Main_Leader__c != Trigger.Oldmap.get(ac.Id).FSE_ENG_Main_Leader__c ){
                ac.FSE_ENG_Main_Leader_Old__c = Trigger.Oldmap.get(ac.Id).FSE_ENG_Main_Leader__c;
            }
            if(ac.FSE_ENG_Vice_Leader__c != Trigger.Oldmap.get(ac.Id).FSE_ENG_Vice_Leader__c ){
                ac.FSE_ENG_Vice_Leader_Old__c = Trigger.Oldmap.get(ac.Id).FSE_ENG_Vice_Leader__c;
            }
            if(ac.Extend_Leader_Str__c != Trigger.Oldmap.get(ac.Id).Extend_Leader_Str__c ){
                ac.Extend_Leader_Str_Old__c = Trigger.Oldmap.get(ac.Id).Extend_Leader_Str__c;
            }
            if(ac.Energy_LeaderStr__c != Trigger.Oldmap.get(ac.Id).Energy_LeaderStr__c ){
                ac.Energy_LeaderStr_Old__c = Trigger.Oldmap.get(ac.Id).Energy_LeaderStr__c;
            }
        }
    }
    
    // 対象の询价取得
    if (acMap.size() > 0 && !StaticParameter.EscapeOpportunityownerUpdate) {
        List<Opportunity> updateList = [
                SELECT Id, OwnerId, AccountId
                  FROM Opportunity
                WHERE AccountId IN :acMap.keyset()
                  AND owner_not_automatically_update__c = FALSE
        ];
        //System.debug('updateList : ' + updateList.size());
        list<Opportunity> opUpdateList = new list<Opportunity>();
        for (Opportunity op : updateList) {
            if(op.OwnerId != acMap.get(op.AccountId)){
                op.OwnerId = acMap.get(op.AccountId);
                opUpdateList.add(op);
            }
 
        }
        if (opUpdateList.size() > 0) {
            ControllerUtil.updOppList(opUpdateList);
        }
    }
    // HWAG-BG682M end
}