// 科室担当者が変更されたら询价担当者を更新する
|
// 询价の「询价担当人单独维护」が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());
|
//20220929 you SWAG-CJP7TL start 同步修改中标,失单任务所有人
|
Map<Id,String> mapoppid = new Map<Id,String>();
|
list<task__c> taskUpdateList = new list<task__c>();
|
//20220929 you SWAG-CJP7TL end
|
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);
|
//20220929 you SWAG-CJP7TL start
|
mapoppid.put(op.id,acMap.get(op.AccountId));
|
//20220929 you SWAG-CJP7TL end
|
}
|
|
}
|
|
if (opUpdateList.size() > 0) {
|
ControllerUtil.updOppList(opUpdateList);
|
}
|
//20220929 you SWAG-CJP7TL start
|
if(mapoppid.size() > 0){
|
List<Task__c> taskList = [
|
SELECT Id,OpportunityId__c,taskStatus__c
|
FROM task__c
|
WHERE OpportunityId__c in :mapoppid.keySet()
|
AND (RecordType.Name = '中标结果确认' OR RecordType.Name = '失单报告任务')
|
AND taskStatus__c = '02 接受'];
|
system.debug(mapoppid.keySet()+'test1-----'+taskList);
|
for(Task__c t: taskList){
|
if(mapoppid.containsKey(t.OpportunityId__c)){
|
t.Ownerid = mapoppid.get(t.OpportunityId__c);
|
t.assignee__c = mapoppid.get(t.OpportunityId__c);
|
taskUpdateList.add(t);
|
}
|
|
}
|
if (taskUpdateList != null && taskUpdateList.size() > 0) {
|
update taskUpdateList;
|
}
|
}
|
//20220929 you SWAG-CJP7TL end
|
}
|
// HWAG-BG682M end
|
}
|