trigger RepairHpDeptUpd on Repair__c (before update) {
|
if((!Test.isRunningTest())&&System.Label.ByPassTrigger.contains(UserInfo.getUserId())){
|
return;
|
}
|
List<String> accIds = new List<String>();
|
|
for(Repair__c a : Trigger.new) {
|
if (Trigger.oldMap.get(a.Id).get('Account__c') != a.Account__c
|
|| a.AccountParentId__c != a.Department_Class__c
|
|| a.AccountParentParentId__c != a.Hospital__c) {
|
if (!String.isBlank(a.Account__c)) {
|
accIds.add(a.Account__c);
|
}
|
}
|
}
|
|
if (accIds.size() > 0) {
|
// 診療科レコードタイプ
|
|
// 原逻辑 为了减少select 改成新逻辑
|
/*
|
String[] deptTypes = new String[] {'病院', '診療科 その他', '診療科 呼吸科', '診療科 婦人科', '診療科 普外科', '診療科 泌尿科', '診療科 消化科', '診療科 耳鼻喉科'};
|
Map<String, String> deptRectMap = new Map<String, String>();
|
|
List<RecordType> deptRects = [select Id, Name from RecordType where IsActive = true and SobjectType = 'Account' and Name IN :deptTypes];
|
for (RecordType rect : deptRects) {
|
deptRectMap.put(rect.Id, rect.Name);
|
}
|
*/
|
//元逻辑
|
// 改成新逻辑,去掉一个select start
|
String[] deptTypes = new String[] {'HP', 'Department_OTH', 'Department_BF', 'Department_GYN', 'Department_GS',
|
'Department_URO', 'Department_GI', 'Department_ENT'};
|
|
Map<String, String> deptRectMap = new Map<String, String>();
|
Map<String, Schema.RecordTypeInfo> deptrectAllMap = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName();
|
for (string rect : deptTypes) {
|
deptRectMap.put(deptrectAllMap.get(rect).getRecordTypeId(),rect);
|
}
|
// 改成新逻辑,去掉一个select end
|
|
Map<Id, Account> accMap = new Map<Id, Account>();
|
List<Account> accs = ControllerUtil.selectAccountForTrigger(accIds);
|
for(Account acc : accs) {
|
accMap.put(acc.Id, acc);
|
}
|
|
for(Repair__c a : Trigger.new) {
|
// 「診療科」に診療科を選択する場合
|
Account acc = accMap.get(a.Account__c);
|
if (acc != null
|
&& deptRectMap.get(acc.RecordTypeId) != null) {
|
if (deptRectMap.get(acc.RecordTypeId) ==
|
// 原为 '病院' ,改为HP
|
'HP') {
|
a.Department_Class__c = null;
|
a.Hospital__c = acc.Id;
|
} else {
|
a.Department_Class__c = acc.ParentId;
|
a.Hospital__c = acc.Parent.ParentId;
|
}
|
}
|
}
|
}
|
|
for(Repair__c rep : Trigger.new){
|
// DOJ上线课题33 从IISE过来,直接同步到EtQ的时候,出现报错。需要修改逻辑。 start
|
if (String.isBlank(rep.ASReportedCodeAC__c) || rep.ASReportedCodeAC__c.indexof('UseRSA') >= 0 ) {
|
rep.Contain_UseRSA__c = true;
|
}else{
|
rep.Contain_UseRSA__c = false;
|
}
|
// DOJ上线课题33 从IISE过来,直接同步到EtQ的时候,出现报错。需要修改逻辑。 end
|
}
|
|
|
|
// RS-202009-498827
|
// Complaint Number同步到SFDC的时候,OSH RA确认者被更新为精琢技术 20200922 Gzw 注释
|
// List<Repair__c> newList = Trigger.new;
|
// Map<Id,Repair__c> newMap = Trigger.newMap;
|
// //newMap.values();
|
// List<Repair__c> oldList = Trigger.old;
|
// Map<Id,Repair__c> oldMap = Trigger.oldMap;
|
|
// for(Repair__c rep : newList){
|
// Repair__c old = oldMap.get(rep.Id);
|
// if(rep.Complaint_Number__c != old.Complaint_Number__c ){
|
// rep.OSH_Affirmant__c = UserInfo.getUserId();
|
// rep.OSH_ConfirmationDate__c = Date.today();
|
// }
|
// }
|
}
|