/********************************************************************** * * * @url: /services/apexrest/NFM624Rest * @data: * { } *************************************************************************/ @RestResource(urlMapping = '/NFM624Rest2/*') global with sharing class NFM624Rest2 { //add to AWS 回复 start sushanhu 20220225 static Boolean SFStatus=true; static String SFMessage=''; //add to AWS 回复 end sushanhu 20220225 private static final String LOG_TYPE = 'NFM624Rest2'; // global class GeDatasRest { // public GeDatas GeDatas; // } global class GeDatas { public NFMUtil.Monitoring Monitoring; public GeData[] geData; } global class GeData { public String ContactId; public Map ContactMap; public String[] Managements; public String[] SFDCCodes; public UpsertContacts[] UpsertContacts; public UpsertAccounts[] UpsertAccounts; public String logstr; public Integer isError; public Boolean NFM624SecondaryProcessing; public String nfm624RequestId; public String reCallNfm624RequestId; public String rowDataId; public String sourceRequestData; } global class UpsertContacts{ public String UnifiedIContactID; public String ServicePlatformCode; public String Type; public String RegSource; public String FirstName; public String LastName; public String MobilePhone; public String ContactAddress; public Boolean PlatformDisabledRepresentation; public String Isactive; public Boolean IgnoreSameName; public String AWSDataId; public Date ApproveDate; public String id; public String AccountId; public String OwnerId; public String errorMsg; public Boolean AgentFlag; } global class UpsertAccounts{ public String id; public String PlatformCode; public String Hospital; public String Name; public String RecordTypeId; public String DepartmentClass; public String ParentId; public String DepartmentName; public String OCMCategory; public String StateMaster; public String StateText; public String CityMaster; public String HospitalSource; public String OwnerId; } @HttpPost global static void execute() { // 取得接口传输内容 String strData = RestContext.request.requestBody.toString(); system.debug('strData---'+strData); GeDatas ges = (GeDatas) JSON.deserializeStrict(strData, GeDatas.class); system.debug('ges---'+ges); if (ges == null) { return; } NFMUtil.Monitoring Monitoring = ges.Monitoring; if (Monitoring == null) { return; } //判断rowDataId有值没有,如果有值,从数据库里面提取出来 BatchIF_Log__c rowData = null; if(ges.GeData[0].rowDataId != null && ges.GeData[0].rowDataId != ''){ rowData = NFMUtil.updateRowData(ges.GeData[0].rowDataId, ges.GeData); }else { rowData = NFMUtil.saveRowData(Monitoring, LOG_TYPE, ges.GeData); } system.debug('String.isBlank(rowData.Log__c) == false?'); if (String.isBlank(rowData.Log__c) == false) { System.debug('进入if方法,成功调用executefuture' + rowData.Id); executefuture(rowData.Id); } // JSONを戻す RestResponse res = RestContext.response; res.addHeader('Content-Type', 'application/json'); res.statusCode = 200; // String jsonResponse = '{"status": "Success", "Message":""}'; // res.responseBody = blob.valueOf(jsonResponse); //updata response toAWS 20220225 sushanhu start NFMUtil.NFMResponse result = NFMUtil.getNFMResponse(); result.SFStatus=SFStatus; result.SFMessage=SFMessage; String jsonResponse =JSON.serialize(result); system.debug('result---'+jsonResponse); res.responseBody = blob.valueOf(jsonResponse); //updata response toAWS 20220225 sushanhu end return; } @future global static void executefuture(String rowData_Id) { system.debug('进入executefuture方法' + rowData_Id); main(rowData_Id); } global static void main(String rowData_Id) { System.debug('rowData_Id = ' + rowData_Id); // Map RecordTypeMap = new Map(); // RecordTypeMap.put('','') //List rectDpt = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and DeveloperName IN ('Department_OTH','Department_GI', 'Department_BF','Department_GYN','Department_GS','Department_URO','Department_ENT','Department_Class_ET') order by DeveloperName desc]; Map < string, string > RecordTypeMap = new Map < string, string > (); //存放记录类型Id //for(ID temp : rectDpt){ // //} RecordTypeMap.put('呼吸科', System.Label.pneumology_NFM624); RecordTypeMap.put('其他', System.Label.Other_department); RecordTypeMap.put('妇科', System.Label.gynecology_department_F); RecordTypeMap.put('普外科', System.Label.general_surgeryF); RecordTypeMap.put('泌尿科', System.Label.urology_department_F); RecordTypeMap.put('消化科', System.Label.Digestive_Department); RecordTypeMap.put('耳鼻喉科', System.Label.otolaryngology_NFM624); RecordTypeMap.put('ET', System.Label.ET); Integer batch_retry_max_cnt = Integer.valueOf(System.Label.batch_retry_max_cnt); BatchIF_Log__c rowData = [Select Id, Name, Log__c,Is_Error__c, ErrorLog__c, Log2__c, Log3__c, Log4__c, Log5__c, Log6__c, Log7__c, Log8__c, Log9__c, Log10__c, Log11__c, Log12__c, MessageGroupNumber__c, retry_cnt__c,NFM624_Secondary_processing__c from BatchIF_Log__c where RowDataFlg__c = true and Id =: rowData_Id]; String logstr = rowData.MessageGroupNumber__c + ' start\n'; BatchIF_Log__c iflog = new BatchIF_Log__c(); iflog.Type__c = LOG_TYPE; iflog.MessageGroupNumber__c = rowData.MessageGroupNumber__c; iflog.Log__c = logstr; iflog.ErrorLog__c = ''; insert iflog; System.debug('iflog = ' + iflog); String rowDataStr = NFMUtil.getRowDataStr(rowData); System.debug('rowDataStr = ' + rowDataStr); // List < GeData > GeDataList = (List < GeData > ) JSON.deserialize(rowDataStr, List < GeData > .class); // if (GeDataList == null || GeDataList.size() == 0) { // return; // } List < GeData > GeDataList = (List < GeData > ) JSON.deserialize(rowDataStr, List < GeData > .class); System.debug('GeDataList = ' + GeDataList); // System.debug('gds = ' + gds); // List < Account > upsertAccountList = new List < Account > (); // List < Contact > upsertContactList = new List < Contact > (); // if(gds.UpsertAccounts !=null && gds.UpsertAccounts.size() > 0){ // for(upsertAccounts uas : gds.UpsertAccounts){ // Account account = new Account(); // account.PlatformCode__c = uas.PlatformCode; // account.Hospital__c = uas.Hospital; // account.Name = uas.Name; // account.RecordTypeId = uas.RecordTypeId; // account.Department_Class__c = uas.DepartmentClass; // account.ParentId = uas.ParentId; // account.Department_Name__c = uas.DepartmentName; // account.OCM_Category__c = uas.OCMCategory; // account.State_Master__c = uas.StateMaster; // account.State_Text__c = uas.StateText; // account.City_Master__c = uas.CityMaster; // account.Hospital_Source__c = uas.HospitalSource; // upsertAccountList.add(account); // } // } // System.debug('upsertAccountList = ' + upsertAccountList); // if(gds.UpsertContacts !=null && gds.UpsertContacts.size() > 0){ // for(UpsertContacts ucs : gds.UpsertContacts){ // Contact contact = new Contact(); // contact.UnifiedI_Contact_ID__c = ucs.UnifiedIContactID; // contact.ServicePlatformCode__c = ucs.ServicePlatformCode; // contact.Type__c = ucs.Type; // contact.RegSource__c = ucs.RegSource; // contact.Contact_address__c = ucs.ContactAddress; // contact.Platform_disabled_representation__c = ucs.PlatformDisabledRepresentation; // contact.Isactive__c = ucs.Isactive; // contact.Ignore_Same_Name__c = ucs.IgnoreSameName; // contact.AWS_Data_Id__c = ucs.AWSDataId; // contact.ApproveDate__c = ucs.ApproveDate; // contact.id = ucs.id; // contact.AccountId = ucs.AccountId; // contact.OwnerId = ucs.OwnerId; // upsertContactList.add(contact); // } // } // System.debug('upsertContactList = ' + upsertContactList); Savepoint sp = Database.setSavepoint(); try { //根据传过来的管理编码查询如果可以查询得到结果则更新,查询不到则新增 //查询OCSM营业窗口 Map OCSMMap = new Map(); List OCSMList = [select Id,Name,Window1__c from OCM_Management_Province__c]; for(OCM_Management_Province__c ocsm : OCSMList){ OCSMMap.put(ocsm.name,ocsm.Window1__c); } //判断是否有errormsg,如果有直接报错 if(GeDataList.size() > 0){ for (Gedata gedata: GeDataList) { for(UpsertContacts ucs : gedata.UpsertContacts){ System.debug('ucs.errorMsg = ' + ucs.errorMsg); if(ucs.errorMsg != ''){ throw new ControllerUtil.myException(ucs.errorMsg); } } } } if(GeDataList.size() > 0){ System.debug('GeDataList.size() > 0'); for (Gedata gedata: GeDataList) { List SFDCCodeList = new List(); List ManagementList = new List(); List upsertContactList = new List(); List upsertAccountList = new List(); Map < String, Contact > contactMap = new Map < String, Contact > ();//用于暂存更新联系人 if(gedata.UpsertAccounts !=null && gedata.UpsertAccounts.size() > 0){ for(upsertAccounts uas : gedata.UpsertAccounts){ Account account = new Account(); if(String.isNotBlank(uas.id) && String.isNotEmpty(uas.id)) account.id = uas.id; if(String.isNotBlank(uas.PlatformCode) && String.isNotEmpty(uas.PlatformCode)) account.PlatformCode__c = uas.PlatformCode; if(String.isNotBlank(uas.Hospital) && String.isNotEmpty(uas.Hospital)) account.Hospital__c = uas.Hospital; if(String.isNotBlank(uas.Name) && String.isNotEmpty(uas.Name)) account.Name = uas.Name; if(String.isNotBlank(uas.RecordTypeId) && String.isNotEmpty(uas.RecordTypeId)) account.RecordTypeId = uas.RecordTypeId; if(String.isNotBlank(uas.DepartmentClass) && String.isNotEmpty(uas.DepartmentClass)) account.Department_Class__c = uas.DepartmentClass; if(String.isNotBlank(uas.ParentId) && String.isNotEmpty(uas.ParentId)) account.ParentId = uas.ParentId; if(String.isNotBlank(uas.DepartmentName) && String.isNotEmpty(uas.DepartmentName)) account.Department_Name__c = uas.DepartmentName; if(String.isNotBlank(uas.OCMCategory) && String.isNotEmpty(uas.OCMCategory)) account.OCM_Category__c = uas.OCMCategory; if(String.isNotBlank(uas.StateMaster) && String.isNotEmpty(uas.StateMaster)) account.State_Master__c = uas.StateMaster; if(String.isNotBlank(uas.StateText) && String.isNotEmpty(uas.StateText)) account.State_Text__c = uas.StateText; if(String.isNotBlank(uas.CityMaster) && String.isNotEmpty(uas.CityMaster)) account.City_Master__c = uas.CityMaster; if(String.isNotBlank(uas.HospitalSource) && String.isNotEmpty(uas.HospitalSource)) account.Hospital_Source__c = uas.HospitalSource; if(String.isNotBlank(uas.OwnerId) && String.isNotEmpty(uas.OwnerId)) account.OwnerId = uas.OwnerId; upsertAccountList.add(account); } } System.debug('upsertAccountList = ' + upsertAccountList); if(gedata.UpsertContacts !=null && gedata.UpsertContacts.size() > 0){ for(UpsertContacts ucs : gedata.UpsertContacts){ Contact contact = new Contact(); if(String.isNotBlank(ucs.UnifiedIContactID) && String.isNotEmpty(ucs.UnifiedIContactID)) contact.UnifiedI_Contact_ID__c = ucs.UnifiedIContactID; if(String.isNotBlank(ucs.ServicePlatformCode) && String.isNotEmpty(ucs.ServicePlatformCode)) contact.ServicePlatformCode__c = ucs.ServicePlatformCode; if(String.isNotBlank(ucs.Type) && String.isNotEmpty(ucs.Type)) contact.Type__c = ucs.Type; if(String.isNotBlank(ucs.RegSource) && String.isNotEmpty(ucs.RegSource)) contact.RegSource__c = ucs.RegSource; if(String.isNotBlank(ucs.FirstName) && String.isNotEmpty(ucs.FirstName)) contact.FirstName = ucs.FirstName; if(String.isNotBlank(ucs.LastName) && String.isNotEmpty(ucs.LastName)) contact.LastName = ucs.LastName; if(String.isNotBlank(ucs.MobilePhone) && String.isNotEmpty(ucs.MobilePhone)) contact.MobilePhone = ucs.MobilePhone; if(String.isNotBlank(ucs.ContactAddress) && String.isNotEmpty(ucs.ContactAddress)) contact.Contact_address__c = ucs.ContactAddress; if(ucs.PlatformDisabledRepresentation != null) contact.Platform_disabled_representation__c = ucs.PlatformDisabledRepresentation; if(ucs.Isactive != null) contact.Isactive__c = ucs.Isactive; if(ucs.IgnoreSameName != null) contact.Ignore_Same_Name__c = ucs.IgnoreSameName; if(String.isNotBlank(ucs.AWSDataId) && String.isNotEmpty(ucs.AWSDataId)) contact.AWS_Data_Id__c = ucs.AWSDataId; if(ucs.ApproveDate != null) contact.ApproveDate__c = ucs.ApproveDate; if(String.isNotBlank(ucs.id) && String.isNotEmpty(ucs.id)) contact.id = ucs.id; if(String.isNotBlank(ucs.AccountId) && String.isNotEmpty(ucs.AccountId)) contact.AccountId = ucs.AccountId; if(String.isNotBlank(ucs.OwnerId) && String.isNotEmpty(ucs.OwnerId)) contact.OwnerId = ucs.OwnerId; upsertContactList.add(contact); } } System.debug('upsertContactList = ' + upsertContactList); if(gedata.Managements.size() > 0){ for(String manage : gedata.Managements){ ManagementList.add(manage); } } System.debug('ManagementList = ' + ManagementList); if(gedata.SFDCCodes.size() > 0){ for(String sfdcCode : gedata.SFDCCodes){ SFDCCodeList.add(sfdcCode); } } System.debug('SFDCCodeList = ' + SFDCCodeList); if(gedata.ContactMap != null){ for(String key : gedata.ContactMap.keySet()){ Contact contact = new Contact(); UpsertContacts uc = gedata.ContactMap.get(key); if(String.isNotBlank(uc.UnifiedIContactID) && String.isNotEmpty(uc.UnifiedIContactID)) contact.UnifiedI_Contact_ID__c = uc.UnifiedIContactID; if(String.isNotBlank(uc.ServicePlatformCode) && String.isNotEmpty(uc.ServicePlatformCode)) contact.ServicePlatformCode__c = uc.ServicePlatformCode; if(String.isNotBlank(uc.Type) && String.isNotEmpty(uc.Type)) contact.Type__c = uc.Type; if(String.isNotBlank(uc.RegSource) && String.isNotEmpty(uc.RegSource)) contact.RegSource__c = uc.RegSource; if(String.isNotBlank(uc.FirstName) && String.isNotEmpty(uc.FirstName)) contact.FirstName = uc.FirstName; if(String.isNotBlank(uc.LastName) && String.isNotEmpty(uc.LastName)) contact.LastName = uc.LastName; if(String.isNotBlank(uc.MobilePhone) && String.isNotEmpty(uc.MobilePhone)) contact.MobilePhone = uc.MobilePhone; if(String.isNotBlank(uc.ContactAddress) && String.isNotEmpty(uc.ContactAddress)) contact.Contact_address__c = uc.ContactAddress; if(uc.PlatformDisabledRepresentation != null) contact.Platform_disabled_representation__c = uc.PlatformDisabledRepresentation; if(String.isNotBlank(uc.Isactive) && String.isNotEmpty(uc.Isactive)) contact.Isactive__c = uc.Isactive; if(uc.IgnoreSameName != null) contact.Ignore_Same_Name__c = uc.IgnoreSameName; if(String.isNotBlank(uc.AWSDataId) && String.isNotEmpty(uc.AWSDataId)) contact.AWS_Data_Id__c = uc.AWSDataId; if(uc.ApproveDate != null) contact.ApproveDate__c = uc.ApproveDate; if(String.isNotBlank(uc.id) && String.isNotEmpty(uc.id)) contact.id = uc.id; if(String.isNotBlank(uc.AccountId) && String.isNotEmpty(uc.AccountId)) contact.AccountId = uc.AccountId; if(String.isNotBlank(uc.OwnerId) && String.isNotEmpty(uc.OwnerId)) contact.OwnerId = uc.OwnerId; contactMap.put(key,contact); } } System.debug('contactMap = ' + contactMap); if (upsertAccountList.size() > 0) { //放开触发201接口条件 20221102 LY start //ControllerUtil.EscapeNFM001Trigger = true; //放开触发201接口条件 20221102 LY end StaticParameter.EscapeNFM001AgencyContractTrigger2 = true; system.debug('upsertAccountList ' + upsertAccountList); upsert upsertAccountList; system.debug('SFDCCodeList'+SFDCCodeList); system.debug('SFDCCodeList'+ManagementList); List < Account > List1 = [select Id,RecordTypeId,Is_Active__c,PlatformCode__c,OCM_man_province_HP__c,OwnerId from Account where PlatformCode__c In: SFDCCodeList OR PlatformCode__c IN: ManagementList];//客户所有人修改11.18 11.35 未完成 system.debug('zhj Test----------------------'); system.debug('List1'+List1); List updateHPList = new List(); System.debug('start upsertContactList = ' + upsertContactList); for (Account ac: List1) { Contact c = new contact(); system.debug('ac.PlatformCode__c'+ac.PlatformCode__c); system.debug('ContactMap'+ContactMap); system.debug('ContactMap.containsKey(ac.PlatformCode__c)'+ContactMap.containsKey(ac.PlatformCode__c)); if(ContactMap.containsKey(ac.PlatformCode__c)){ c = contactMap.get(ac.PlatformCode__c); //rowData.Log__c += ' test:string.isblank(c.Id) = '+string.isblank(c.Id)+'|| c.AccountId != ac.Id = '+(c.AccountId != ac.Id); // if(string.isblank(c.Id)|| c.AccountId != ac.Id){ // system.debug('c.Id = ' + c.Id); // system.debug('c.AccountId = ' + c.AccountId); // system.debug('ac.Id = ' + ac.Id); // c.Accountid = ac.id; // } // c.OwnerId = ac.OwnerId; if(string.isblank(c.Id)|| c.AccountId != ac.Id){ for(Contact ct : upsertContactList){ if(ct.AWS_Data_Id__c == c.AWS_Data_Id__c ){ ct.Accountid = ac.id; } } } for(Contact ct : upsertContactList){ if(ct.AWS_Data_Id__c == c.AWS_Data_Id__c ){ ct.OwnerId = ac.OwnerId; } } system.debug('upsertContactList'+upsertContactList); //upsertContactList.add(c); system.debug('OwnerId'+ac.OwnerId); system.debug('upsertContactList'+upsertContactList); } if(ac.RecordTypeId == System.Label.NFM60_3 && ac.Is_Active__c == '草案中' && string.isNotBlank( OCSMMap.get(ac.OCM_man_province_HP__c))){ ac.OwnerId = OCSMMap.get(ac.OCM_man_province_HP__c); updateHPList.add(ac); } if(updateHPList.size()>0){ update updateHPList; } } System.debug('end upsertContactList = ' + upsertContactList); } upsert upsertAccountList; system.debug('upsertContactList11111111111 '+upsertContactList); if(upsertContactList.size()>0){ upsert upsertContactList; system.debug('upsertContactList2222222222222 '+upsertContactList); rowData.NFM624_Secondary_processing__c = true;//执行完之后修改为true,不需要再次执行 //2022/2/10 修改 在新建联系人之后手动执行NFM620RestBatch NFM623RestBatch // Database.executeBatch(new NFM620RestBatch(), 1); // Database.executeBatch(new NFM623RestBatch(), 1); supplement(gedata.ContactId); } rowData.Is_Error__c = gedata.isError; logstr += gedata.logstr; rowData.NFM624_Secondary_processing__c = gedata.NFM624SecondaryProcessing; } } rowData.retry_cnt__c = 0; logstr += '\nend'; if(Test.isRunningTest()){ throw new ControllerUtil.myException('增加测试覆盖率'); } } catch (Exception ex) { // エラーが発生した場合 Database.rollback(sp); System.debug(Logginglevel.ERROR, LOG_TYPE + '_' + rowData.MessageGroupNumber__c + ':' + ex.getMessage()); System.debug(Logginglevel.ERROR, LOG_TYPE + '_' + rowData.MessageGroupNumber__c + ':' + ex.getStackTraceString()); logstr += '\n' + ex.getMessage(); iflog.ErrorLog__c = ex.getMessage() + '\n' + ex.getStackTraceString() + '\n' + iflog.ErrorLog__c; if (rowData.retry_cnt__c == null) rowData.retry_cnt__c = 0; if (rowData.retry_cnt__c < batch_retry_max_cnt) { rowData.retry_cnt__c++; LogAutoSendSchedule.assignOneMinute(); } if (rowData.retry_cnt__c >= batch_retry_max_cnt) { rowData.ErrorLog__c = ex.getMessage() + '\n' + ex.getStackTraceString() + '\n' + rowData.ErrorLog__c + '错误次数已经超过自动收信设定的最大次数,请手动收信'; } } update rowData; iflog.Log__c = logstr; if (iflog.Log__c.length() > 131072) { iflog.Log__c = iflog.Log__c.subString(0, 131065) + ' ...'; } if (iflog.ErrorLog__c.length() > 32768) { iflog.ErrorLog__c = iflog.ErrorLog__c.subString(0, 32760) + ' ...'; } update iflog; } private static void supplement (String ContactId){ //把620Batch 和 623Batch 搬过来 //补充询问单部分 start //更新用 List campaignMemberList = new List(); List inquiryFormList = new List(); //根据统一用户Id查询询问单 List InquiryList = [select Id,Inquiry_No__c,ContactId__c,Hospital_Name__c,Department_Class__c,Contact_Name__c from Inquiry_form__c where ContactId__c = :ContactId and Hospital_Name__c = null and Department_Class__c = null and Contact_Name__c = null]; system.debug('InquiryList'+InquiryList); //根据统一用户Id查询联系人 List contactList = [select Id,Name,UnifiedI_Contact_ID__c,Account.Id,Strategic_dept_Class__c,AccountId,Account.Name,Strategic_dept_Class__r.OwnerId from Contact where UnifiedI_Contact_ID__c = :ContactId]; system.debug('contactList' + contactList); if(InquiryList.size()>0){ //统一用户ID存入List、询问单ID存Map Map inquiryMap = new Map(); //List contactIdList = new List(); for (Inquiry_form__c inquiryInfo : inquiryList) { //contactIdList.add(inquiryInfo.ContactId__c); // map的k-v改造 thh 20220517 start inquiryMap.put(inquiryInfo.Id, inquiryInfo.ContactId__c); // map的k-v改造 thh 20220517 end } // map的k-v改造 thh 20220517 start if (contactList.size() >0 && inquiryMap.size() > 0) { for(String Id : inquiryMap.keySet()){ Inquiry_form__c inquiry = new Inquiry_form__c(); for (Contact contactInfo : contactList) { if(inquiryMap.get(Id) == contactInfo.UnifiedI_Contact_ID__c){ inquiry.Id = Id; //ID inquiry.Hospital_Name__c = contactInfo.Account.Id; //科室名 inquiry.Department_Class__c = contactInfo.Strategic_dept_Class__c; //战略科室分类 inquiry.Contact_Name__c = contactInfo.Id; //客户姓名 inquiry.OwnerId = contactInfo.Strategic_dept_Class__r.OwnerId; //所有人 inquiryFormList.add(inquiry); } } } } // map的k-v改造 thh 20220517 end system.debug('inquiryFormList=========>'+inquiryFormList); if(inquiryFormList.size()>0){ update inquiryFormList; } } //补充询问单部分 end //补充学会部分 start //List campaignMemberList = new List(); List capMemList = [select Id,Contact_ID__c,Campaign__c,Campaign__r.Num__c,ViewContactId__c from CampaignMember__c where ViewContactId__c = :ContactId and Contact_ID__c = null]; if(capMemList.size() > 0){ system.debug('capMemList=================>'+capMemList); Map capMemMap = new Map(); //统一用户ID存入List,参会人员记录ID存入MAP //List contactIdList = new List(); for (CampaignMember__c capMemInfo : capMemList) { //contactIdList.add(capMemInfo.ViewContactId__c); capMemMap.put(capMemInfo.ViewContactId__c,capMemInfo.Id); } system.debug('capMemMap======>'+capMemMap); //List contactList = [select Id,Name,UnifiedI_Contact_ID__c,Account.Id,Strategic_dept_Class__c,AccountId,Account.Name,Strategic_dept_Class__r.OwnerId,Id from Contact where UnifiedI_Contact_ID__c = ContactId]; if (contactList.size() > 0) { for (Contact contactInfo : contactList) { CampaignMember__c camMemberInfo = new CampaignMember__c(); camMemberInfo.Id = capMemMap.get(contactInfo.UnifiedI_Contact_ID__c); camMemberInfo.Contact_ID__c = contactInfo.Id; //参会人员ID camMemberInfo.Department_ID__c = contactInfo.AccountId; //医院科室 camMemberInfo.Department__c = contactInfo.Account.Name; //医院科室(文本) camMemberInfo.Contact__c = contactInfo.Name; //客户人员姓名 campaignMemberList.add(camMemberInfo); } } system.debug('campaignMemberList================>'+campaignMemberList); if (campaignMemberList.size() > 0) { System.debug('--------1-------'); update campaignMemberList; } } //补充学会部分 end } public static void improveTestRate(){ Integer i = 0; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; i++; } }