| trigger MaintenanceContractTrigger on Maintenance_Contract__c (after insert, before update, before delete) { | 
|     if ((Trigger.isAfter && Trigger.isInsert) || (Trigger.isBefore && Trigger.isUpdate)) { | 
|         NFM106Controller.NFM106Trigger(Trigger.new, Trigger.newMap, Trigger.old, Trigger.oldMap); | 
|     } | 
|   | 
|     if (Trigger.isBefore) { | 
|         if (Trigger.isDelete) { | 
|             List<String> mcIds = new List<String>(); | 
|             List<SFDelete__c> dlist = new List<SFDelete__c>(); | 
|             for (Maintenance_Contract__c mc : Trigger.old) { | 
|                 mcIds.add(mc.Id); | 
|                 // SFDelete__c にデータを追加 | 
|                 dlist.add(new SFDelete__c( | 
|                     delSfId__c = mc.Id, | 
|                     tableName__c = 'Maintenance_Contract__c', | 
|                     dataOwnerId__c = mc.Service_Contract_Staff__c | 
|                 )); | 
|             } | 
|             ControllerUtil.insSFDelete(dlist); | 
|             // 活動_サビコンを削除 | 
|             ControllerUtil.delEvent3ForTrigger(mcIds); | 
|         } | 
|         //add                    wangweipeng         2021/11/29              start | 
|         //判断认款是否完成 | 
|         if(Trigger.isUpdate){ | 
|             for (Maintenance_Contract__c nmc : Trigger.new) { | 
|                 //判断 上传认款合同时间 是否为空,如果不为空,那么证明此合同需要认款,并且认款金额需要和 第一次计划付款金额 做对比 | 
|                 if(nmc.upload_to_RM_time__c != null){ | 
|                     if(nmc.All_Amount__c != Trigger.oldMap.get(nmc.Id).All_Amount__c || nmc.Payment_Plan_Sum_First__c != Trigger.oldMap.get(nmc.Id).Payment_Plan_Sum_First__c){ | 
|                         if(nmc.Payment_Plan_Sum_First__c != null || nmc.Payment_Plan_Sum_First__c > 0.0 ){ | 
|                             nmc.Is_Recognition_Model_True__c = nmc.All_Amount__c >= nmc.Payment_Plan_Sum_First__c ? true : false; | 
|                         }else{ | 
|                             if(nmc.All_Amount__c > 0.0 && nmc.All_Amount__c != null){ | 
|                                 nmc.Is_Recognition_Model_True__c = true; | 
|                             }else{ | 
|                                 nmc.Is_Recognition_Model_True__c = false; | 
|                             } | 
|                         } | 
|                     } | 
|                 } | 
|             } | 
|         } | 
|         //FSE所在大区助理 赋值  根据主担当人 的本部 | 
|         //华北:洪贺男  东北:刘莹莹  西北:祝琪雪  西南:何学琼  华东:陈明赟  华南:闻静 | 
|         Set<String> setStaff = new Set<String>(); | 
|         if(Trigger.isUpdate){ | 
|             for (Maintenance_Contract__c nmc : Trigger.new) { | 
|                 if(nmc.Service_Contract_Staff__c != Trigger.oldMap.get(nmc.Id).Service_Contract_Staff__c || String.isBlank(nmc.FSE_Regional_Assistant__c)){ | 
|                     setStaff.add(nmc.Service_Contract_Staff_Salesdepartment__c);//主担当本部(大区) | 
|                 } | 
|             } | 
|         }else if(Trigger.isInsert){ | 
|             for (Maintenance_Contract__c nmc : Trigger.new) { | 
|                 if(String.isNotBlank(nmc.Service_Contract_Staff__c)){ | 
|                     setStaff.add(nmc.Service_Contract_Staff_Salesdepartment__c);//主担当本部(大区) | 
|                 } | 
|             } | 
|         } | 
|         if(setStaff.size() > 0){ | 
|             //获取对应的自定义元数据 | 
|             List<FSE_Regional_Assistant__mdt> usrList = [select id,MasterLabel,DeveloperName,UserName__c,UserId__c from FSE_Regional_Assistant__mdt where MasterLabel in :setStaff]; | 
|             if(usrList != null && usrList.size() > 0){ | 
|                 for (Maintenance_Contract__c nmc : Trigger.new) { | 
|                     //如果是更新,那么判断主担当人是否有变化或FSE大区助理是否为空,如果满足其中一条,那么更新大区助理 | 
|                     if(Trigger.isUpdate){ | 
|                        if(!(nmc.Service_Contract_Staff__c != Trigger.oldMap.get(nmc.Id).Service_Contract_Staff__c  | 
|                         || String.isBlank(nmc.FSE_Regional_Assistant__c))) | 
|                        { | 
|                             continue; | 
|                        } | 
|                     } | 
|                     if(String.isNotBlank(nmc.Service_Contract_Staff__c)){ | 
|                         for(FSE_Regional_Assistant__mdt fram : usrList){ | 
|                             if(String.isNotBlank(fram.MasterLabel) && nmc.Service_Contract_Staff_Salesdepartment__c == fram.MasterLabel){ | 
|                                 nmc.FSE_Regional_Assistant__c = fram.UserId__c; | 
|                             } | 
|                         } | 
|                     } | 
|                 } | 
|             } | 
|         } | 
|         //add                    wangweipeng         2021/11/29              end | 
|     } | 
| } |