trigger ConsumableOrderTrigger on Consumable_order__c (before insert, before update) { if (StaticParameter.EscapeConsumableOrderDetail2Trigger) { return; } //add by rentx 20210618 start if (StaticParameter.ConsumableOrderTrigger) { return; } //ad by rentx 20210618 end Set contactIdSet = new Set(); Map rprIdList = new Map(); Map contactIdMap = new Map(); List sAlist = new List(); if (Trigger.isBefore) { Account contactdet = null; List contactList = new List(); Consumable_order__c old = null; for (Consumable_order__c local : Trigger.New) { if(String.isNotBlank(local.Order_effective_contact__c)) { contactIdSet.add(local.Order_effective_contact__c); } } // contactList = [SELECT Id, Name, Business_Assistant__c FROM Account WHERE Id in :contactIdSet]; // for(Account acc :contactList){ // if(String.isNotBlank(acc.Business_Assistant__c)){ // contactIdMap.put(acc.Id, acc.Business_Assistant__c); // } // } Map > sAmap = new Map >(); Map zMaps = new Map(); for (Consumable_order__c local : Trigger.New) { if(String.isNotBlank(local.Opportunity__c) && String.isNotBlank(local.name)) { zMaps.put(local.Opportunity__c,local.name); } } sAlist = [SELECT ContractNO__c,Opportunity__c FROM Statu_Achievements__c WHERE Opportunity__c = :zMaps.keySet()]; for(Statu_Achievements__c sa : sAlist) { List ssList = sAmap.get(zMaps.get(sa.Opportunity__c)); if(ssList == null) { ssList = new List(); } ssList.add(sa); sAmap.put(zMaps.get(sa.Opportunity__c),ssList); } // sAlist = [SELECT ContractNO__c FROM Statu_Achievements__c WHERE Opportunity__c = :opps]; // sAmap.put(name,sAlist); for (Consumable_order__c local : Trigger.New) { if (Trigger.isInsert) { rprIdList.put(local.Id, local.Id); } if (Trigger.isUpdate) { old = Trigger.oldMap.get(local.Id); } // 「消耗品订单」になったとき、ログインユーザーからプロセス用の上司を設定 if ((Trigger.isInsert || old.Order_status__c != local.Order_status__c) && local.Order_status__c == '附件上传完成' ) { //if (contactdet == null) { // contactdet = [SELECT Id, Name, Business_Assistant__c FROM Account WHERE Id = :local.Order_effective_contact__c]; //} if(local.Business_Assistant__c == null) { local.addError('合同没有有效的营业助理。'); continue; }else{ local.SalesManager__c = local.Business_Assistant__c; } // 項目の新規追加したくない、API名も変更したくない、ラベル名を変更、User.服务→修理.服务 //local.SalesManager__c = contactdet.SalesManager__c == null ? contactdet.Id : contactdet.SalesManager__c; //local.BuchangApprovalManagerSales__c = loginUser.BuchangApprovalManager__c == null ? loginUser.Id : loginUser.BuchangApprovalManager__c; //local.ZongjianApprovalManager__c = loginUser.ZongjianApprovalManager__c == null ? loginUser.Id : loginUser.ZongjianApprovalManager__c; //local.TongkuoZongjian__c = loginUser.TongkuoZongjian__c == null ? loginUser.Id : loginUser.TongkuoZongjian__c; } //更新or插入 前 if(Trigger.isInsert || Trigger.isUpdate ) { List cNList = new List(); List sas = sAmap.get(local.name); if(sas != null) { for (Statu_Achievements__c sa : sas) { //保存合同编号 cNList.add(sa.ContractNO__c); } //拼接合同编号 String cNs = String.join(cNList,','); local.ContractNo__c = cNs; } } } } }